Hi Rob,
thanks much for your report and questions!
You are correct that knotc is waiting for knotd to perform the zone
addition/removal during conf-commit.
This operation (performed by knotd) is single-threaded, therefore the
measured load on your multi-CPU-core machine might not seem utilized.
Could you please confirm that one CPU core is running on 100% during the
commit?
It is true that some operations modifying the set of configure zones
lead to complete re-build of the zone tree, therefore the time needed
depends of the total number of zones, even when they are otherwise
unaffected. Daniel already told that he will check if/why this is also
the case.
Anyway, are 2 seconds really that bad? It seems nice to me :) If many
zones are casually added/removed in your setup every minute, it would be
wise to group them into batches -- not only for performance/timing
reasons. Could you please confirm that adding/removing for example 100
zones takes roughly the same time?
By the way, we would love to hear about any other challenges/bottlenecks
in your setup.
Libor