Load Your Configuration: Open Source=19 minutes! YumaPro takes 0.2 seconds!
Real-World networks involve complex system configurations. YANG constraints are used to automate the validation of these configurations, and all constraints must be validated before a configuration change can take effect. YANG constraints include:
- Must statements (referential integrity)
- When statements (conditional data nodes)
- Leafref statements (cross references)
Details of the tests
The YumaPro SDK server transaction engine has been optimized so it is now much faster, even if the candidate database is used. Only the nodes affected by a commit or edit operation on the running configuration will be processed during a transaction. Performance enhancements and new feature development bring continued performance improvements to the netconfd-pro server.
The tests start with the server in its factory default configuration and using the –target=running server configuration parameter.
Boot-time Load Configuration Performance
Test 1: Boot the server with a startup config of 4,000 VLAN interfaces using YANG Constraints
A critical measure of database performance is how long it takes to load and validate the running configuration from non-volatile storage. A device that takes a long time loading its configuration after a power outage can have a severe impact on network availability.
Test 1 uses ietf-interface.yang augmented with ex-vlan.yang, both defined in RFC 7223, to simulate a device boot scenario. The server uses a startup-configuration with 4,000 interfaces that are augmented with VLANs using “must”, “when” and “leafref” constraints.
For more information on how constraints are used see the Knowledge Base article: “YANG Constraints Explained”
Runtime Edit Transaction Performance
Edit transaction performance is critical for provisioning applications. Test 2-4 cover typical provisioning tasks. One of the most thorough tests possible is to create a lot of the same type of list entries, as in Test 3, since that is how a typical provisioning application works.
Test 2: Add 1 VLAN interface
This test adds 1 VLAN interface to the server.
Test 3: Add 4,000 VLAN interfaces
This test adds 4,000 VLAN interface to the server.
Test 4: Delete 1 interface
This test deletes 1 VLAN interface to the server.
YANG used in the tests
The data model has the following structure: +‑‑rw interfaces | +‑‑rw interface* [name] | +‑‑rw name string | +‑‑rw description? string | +‑‑rw type identityref | +‑‑rw enabled? boolean | +‑‑rw link-up-down-trap-enable? enumeration Via augments: | +‑‑rw vlan-tagging? boolean | +‑‑rw base-interface? leafref | +‑‑rw vlan-id? uint16
YumaPro’s Server significantly outperforms Open Source servers in terms of transaction performance, but YumaPro SDK provides many other advantages over Open Source tools as well. See the difference between Open Source and YumaPro SDK.
To review more in-depth test comparisons please read our Knowledge Base article YumaPro Performance Advantages