basho/bitcask — pull request #106 by engelsanchez (2013-09-19 15:44:32+00:00)
Title: Refactor of Evan's multifold

This is an attempt to clean up the multifold logic to make it more
maintanable.

* New find_result struct holds the results of a find operation. This
simplifies the logic of most operations that use a find and later have
to figure out exactly where things were found, whether they were a
tombstone, etc.
* Removes the need to malloc temporary entries while manipulating the
keydir. For this, a new proxy struct was created to hold the values
of a regular or list entry when it's found.
* Removes the need to malloc temporary entries when looking up stuff
from the keydir. A new khash operation was added to allow custom hash
and equal functions to be used, so you can look up from something
other than a variable length entry.
* Adds locking to iteration now that it can happen while puts are
updating the entries hash. Found during review of original PR
* Tries to fix unused keydir_copy operation now that entries can be lists