Setting the ALLOW_DUPLICATES fixes the insert performance problem.
and causes only one sort to occur on the first access.

---
 
agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c 
|    6 +++++-
 agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c    
 |    6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

--- 
a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
   2011-02-26 15:28:59.548018673 -0800
+++ 
b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
   2011-02-26 15:29:15.108187399 -0800
@@ -2324,8 +2324,12 @@ _inetCidrRouteTable_container_init(inetC
     if (NULL == if_ctx->container) {
         if_ctx->container =
             netsnmp_container_find("inetCidrRouteTable:table_container");
-        if (if_ctx->container)
+        if (if_ctx->container) {
             if_ctx->container->container_name = strdup("inetCidrRouteTable");
+           /* set allow duplicates this makes insert O(1) */
+           netsnmp_binary_array_options_set(if_ctx->container, 1,
+                                            CONTAINER_KEY_ALLOW_DUPLICATES);
+       }
     }
     if (NULL == if_ctx->container) {
         snmp_log(LOG_ERR, "error creating container in "
--- 
a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c   
    2011-02-26 15:28:59.584019064 -0800
+++ 
b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c   
    2011-02-26 15:29:15.108187399 -0800
@@ -2272,8 +2272,12 @@ _ipCidrRouteTable_container_init(ipCidrR
     if (NULL == if_ctx->container) {
         if_ctx->container =
             netsnmp_container_find("ipCidrRouteTable:table_container");
-        if (NULL != if_ctx->container)
+        if (NULL != if_ctx->container) {
             if_ctx->container->container_name = strdup("ipCidrRouteTable");
+           /* set allow duplicates this makes insert O(1) */
+           netsnmp_binary_array_options_set(if_ctx->container, 1,
+                                            CONTAINER_KEY_ALLOW_DUPLICATES);
+       }
     }
     if (NULL == if_ctx->container) {
         snmp_log(LOG_ERR, "error creating container in "



------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in 
Real-Time with Splunk. Collect, index and harness all the fast moving IT data 
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business 
insights. http://p.sf.net/sfu/splunk-dev2dev 
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to