]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Reduce the nodelock count for both cache and regular rbtdb
authorOndřej Surý <ondrej@isc.org>
Mon, 19 Jul 2021 08:17:12 +0000 (10:17 +0200)
committerOndřej Surý <ondrej@isc.org>
Wed, 21 Jul 2021 15:00:15 +0000 (17:00 +0200)
Increasing the nodelock count had major impact on the memory footprint
in scenarios where multiple rbtdb structure would be created like
hosting many zones in a single server.

This reverts commit 03446843856a3efbaaec41409b5eea5542501118 and sets
the nodelock count to previously used values.

lib/dns/rbtdb.c

index ad93de8d3a097feee57d456e13dce68eb113a2b2..98df4377c2232103c86e7b6478cc99bb400f5684 100644 (file)
@@ -336,7 +336,7 @@ typedef ISC_LIST(dns_rbtnode_t) rbtnodelist_t;
        (((header)->rdh_ttl > (now)) || \
         ((header)->rdh_ttl == (now) && ZEROTTL(header)))
 
-#define DEFAULT_NODE_LOCK_COUNT            53 /*%< Should be prime. */
+#define DEFAULT_NODE_LOCK_COUNT            7 /*%< Should be prime. */
 #define RBTDB_GLUE_TABLE_INIT_BITS  2U
 #define RBTDB_GLUE_TABLE_MAX_BITS   32U
 #define RBTDB_GLUE_TABLE_OVERCOMMIT 3
@@ -368,7 +368,7 @@ hash_32(uint32_t val, unsigned int bits) {
 #define DEFAULT_CACHE_NODE_LOCK_COUNT DNS_RBTDB_CACHE_NODE_LOCK_COUNT
 #endif /* if DNS_RBTDB_CACHE_NODE_LOCK_COUNT <= 1 */
 #else  /* ifdef DNS_RBTDB_CACHE_NODE_LOCK_COUNT */
-#define DEFAULT_CACHE_NODE_LOCK_COUNT 97
+#define DEFAULT_CACHE_NODE_LOCK_COUNT 17
 #endif /* DNS_RBTDB_CACHE_NODE_LOCK_COUNT */
 
 typedef struct {