Skip to content

use dns_qp rather than dns_qpmulti in zone table

Evan Hunt requested to merge 4006-zone-table-performance into main

writes and updates using the dns_qpmulti mechanism require repeated scans of the chunk array when opening and committing (or rolling back) transactions. since the zone table is loaded before the loops are running, isc_qsbr isn't able to keep the chunk table size under control, and consequently the array gets very large, substantially impairing startup performance on a server with a large number of zones.

while this problem is being corrected elsewhere, we can restore the performance by putting back the zone table's rwlock and using a dns_qp structure instead of dns_qpmulti transactions. changes to the zone table are done one at a time, so the transaction/commit/rollback semantics aren't really needed here anyway.

Closes #4006 (closed)

Edited by Evan Hunt

Merge request reports