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