bind9/lib/dns/include
Ondřej Surý c50e96f8d6
Simplify the delegation database LRU to a single shared SIEVE
The delegation database kept one SIEVE LRU list per loop so that node
eviction could run lock-free on each node's owning loop; this required
every node to hold a loop reference and to defer its own destruction to
that loop via isc_async_run().  Move the SIEVE unlink into the QP write
transaction, taking the evicted node directly from dns_qp_deletename(),
which serialises every list mutation under the qpmulti writer lock and
lets a single shared list replace the per-loop arrays.  Node and database
teardown are now synchronous.

The QP trie and the SIEVE list are wrapped in a reference-counted holder.
Each node keeps a reference to the holder so it (and its memory context)
stays valid until the node is destroyed, while shutdown drains the SIEVE
and destroys the trie from an RCU callback and frees the holder once the
last node drops its reference.  Reuse across a reconfiguration now moves
ownership of the holder to the new view instead of sharing it through a
separate owners counter, so dns_delegdb_reuse() is removed.
2026-06-04 12:52:30 +02:00
..
dns Simplify the delegation database LRU to a single shared SIEVE 2026-06-04 12:52:30 +02:00
dst Fix spelling typos in comments and code 2026-06-01 16:58:16 +02:00
irs Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
.clang-format Add separate .clang-format files for headers 2020-02-14 09:31:05 +01:00
meson.build replace the build system with meson 2025-06-11 10:30:12 +03:00