copy-on-write transactions for qp tries
I took a week off for a beer festival, and you won't believe what happened next!
_________________ < CONCURRENT TRIE > ----------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
You can get my code from https://git.uis.cam.ac.uk/x/uis/u/fanf2/knot-dns.git branch u/fanf2/cow head commit 4b2a0c16c086dcb049317bb92861a2fe28c30c0a
There are two commits, a refactoring commit (no functional change) and a feature commit. The tests should all pass after both commits.
I have not done any benchmarking. I have been fairly liberal with helper functions and assertions, assuming that they will be compiled away in a production build so there shouldn't be a performance regression. However I have not verified this.