basho/bitcask — pull request #142 by engelsanchez (2014-03-05 02:01:53+00:00)
Title: Fix iterator generation increment

iter_generation should increment every time the number of iterators
reaches zero. The existing code only does it when that happens AND the
keydir was frozen. iter_generation is used in the delete worker to
avoid deleting files that are still used by a snapshot present in the
keydir when iterators are used. So the current code may postpone
deleting files for potentially a long time if the keydir doesn't reach
the point where it needs to freeze.

This behavior was introduced with multifolds. Before that, keydirs unfreezing
and number of iterators going to zero was basically the same event.