basho/bitcask — pull request #181 by slfritchie (2014-07-16 07:52:19+00:00)
Title: Fix bitcask_pulse model to know when a keydir may have been frozen.

Fixes #180.

* Rename `bitcask_nifs:keydir_remove/3` -> * `bitcask_nifs:keydir_remove_int/3`

* Use a compile-time -ifdef magic to add `pulse_log_call()` wrappers
around all keydir NIF calls that can mutate the keydir.

* Make several changes to the bitcask_pulse model:

* Filter out bad reads from either kind of bad folds
* If a bad read happens, that's bad
* If a bad fold happens, then figure out during what period of
at-last-one-folder-is-running-time that the bad result appeared.
Then figure out if a keydir mutating NIF was called; if yes,
then it's possible that the keydir was frozen ... we don't know
for sure, but we won't cause the model to fail in this case.