On Fri, Jan 30, 2015 at 3:57 PM, David Barbour <[email protected]> wrote:

>
> For my current use case, I believe that I can still achieve a sufficient
> level of parallelism even if limited to double-buffering (whereas two
> snapshots would give me triple-buffering). I'm not going to press for any
> changes at this time.
>
>
After having examined this further, I've changed my mind.

With triple buffering, I can guarantee that the writer *almost* never waits
on a short-running reader, and that the readers never wait on the writer.
With double buffering, the probability of the writer waiting on even
short-running readers, assuming they are frequent, is nearly 100%. Triple
buffering is thus a huge advantage for users of MDB_NOLOCK.

The update to support this is almost trivial: tweak `mdb_find_oldest` such
that both meta-page snapshots are considered to have active readers. I'm
willing to develop and submit a patch, but only if this change also sounds
good to the main LMDB developers.

Regards,

Dave

Reply via email to