]> git.ipfire.org Git - thirdparty/bind9.git/commit
Create per-thread task and memory context for zonemgr
authorOndřej Surý <ondrej@sury.org>
Fri, 17 Dec 2021 10:34:57 +0000 (11:34 +0100)
committerOndřej Surý <ondrej@isc.org>
Fri, 1 Apr 2022 21:50:34 +0000 (23:50 +0200)
commita94678ff77b64e86013e66b5381d5e2cac84d67c
treecfb9b4561fcafa9b480640ad45552b5d7400fc6a
parentabb5e9a57568e89f96e6e7b0d0d4beba3db950fc
Create per-thread task and memory context for zonemgr

Previously, the zonemgr created 1 task per 100 zones and 1 memory
context per 1000 zones (with minimum 10 tasks and 2 memory contexts) to
reduce the contention between threads.

Instead of reducing the contention by having many resources, create a
per-nm_thread memory context, loadtask and zonetask and spread the zones
between just per-thread resources.

Note: this commit alone does decrease performance when loading the zone
by couple seconds (in case of 1M zone) and thus there's more work in
this whole MR fixing the performance.
16 files changed:
bin/named/server.c
lib/dns/include/dns/zone.h
lib/dns/tests/dnstest.c
lib/dns/tests/zonemgr_test.c
lib/dns/update.c
lib/dns/zone.c
lib/isc/Makefile.am
lib/isc/include/isc/pool.h
lib/isc/include/isc/taskpool.h [deleted file]
lib/isc/pool.c
lib/isc/taskpool.c [deleted file]
lib/isc/tests/Makefile.am
lib/isc/tests/pool_test.c
lib/isc/tests/taskpool_test.c [deleted file]
lib/ns/tests/nstest.c
lib/ns/update.c