basho/bitcask — pull request #34 by jonmeredith (2012-02-06 16:51:38+00:00)
Title: Fix put at same second as merge time

Changed put to wrap write file and retry on already_exists.

Resolves issue discovered by bitcask_qc_fsm EQC test. If the merge rewrites keys during the same second as an incoming put, the incoming was failing with already_exists when writing to the keydir.

Now, bitcask will roll over to a new file and reattempt the put once as the put should succeed now the writer process has a greater file_id than the merge process.