On Wed, May 26, 2010 at 11:37, Robert Buck <[email protected]> wrote:
> Here is a newbie question for you that relates MVCC, compaction, and 
> versioning.
>
> I read that old versions of documents are cleaned up upon compaction.
> I read that every b-tree root will point to a consistent snapshot of
> the database.
> I read that there could be readers reading three different versions
> [of a document] at the same time [due to timing of reads vs writes].

Yay!

>
> So long as reader (i) is reading a document (r), if updates to the
> document introduce an effective change from r->s, if after 's' has
> been added the database were compacted, what would reader (i) see?
> Would document (r) be pulled out from under reader (i) or would the
> document remain until such time as the reader no longer refers to it?

The switch to the new, compacted database won't happen so long as
there are references to the old one. (r) will not disappear until (i)
is done with it.

Reply via email to