This MR adds add some specialized logic to handle IXFR in qpzone, avoiding the need to have one qp transaction per rdataset.
We do this in multiple steps:
- We extend dns_rdatacallbacks_t vtable to allow subtraction and resigning.
- We add a new set of api (begin|commit|abort)update to the dbmethods vtable. These API model an incremental update that can be aborted, and make diff apply use these functions instead of adding the rdatasets directly to the database.
- We add a specialization of dns_rdatacallbacks_t to qpzone that uses a single qp transaction for the entire IXFR.
With this batch API, we see performance improvements over adding one rdataset at a time.
Closes #5442
Merge branch '5442-ixfr-batch-transaction' into 'main'
See merge request isc-projects/bind9!11077