• Tony Finch's avatar
    trie: support for copy-on-write transactions · 1bc09711
    Tony Finch authored and Daniel Salzman's avatar Daniel Salzman committed
    A COW transaction allows a trie to be used for reading concurrently
    while a modified version of the trie is being prepared. The change
    can be committed by swapping the new trie root in place of the old one.
    
    Internally, this feature uses one bit reference counts to identify which
    parts of the trie are shared between the old and new versions, which
    parts are new-only (so can be mutated) and which parts are old-only
    (and will be free()d after commit).
    1bc09711