On Feb 9, 2009, at 12:35 PM, Paul Davis wrote:

On Mon, Feb 9, 2009 at 11:46 AM, Adam Kocoloski
<[email protected]> wrote:
On Feb 9, 2009, at 11:23 AM, Paul Davis wrote:

Assuming the replication processes doesn't interleave documents from
different MVCC commits,

I believe that's correct.


I think it's only correct if you don't edit the doc after the
_bulk_docs call. Making two calls to _bulk_docs and then editing a
document from the first transaction would make things interleave I
think.

It sounds like we're on the same page, Paul. If you define a commit as a list of id/rev pairs there's no interleaving. Call the doc that was edited twice A/"foo" and A/"bar". A/"foo" is part of the first _bulk_docs, and it
disappears from the replication stream once A/"bar" lands.

Adam


In that case I'd agree, but as I understand it the data associated
with A/"foo" never gets replicated, only the _id/rev pair to inform
the other side that the state existed. And further it's only
replicated when the process gets to A/"bar".

I'm a bit hazy on the details, but my understanding is that it'd be
impossible to have knowledge of A/"foo" prior to reaching A/"bar" in
the update_seq. As in, knowledge of the update_seq for A/"foo" is
removed (Other than it happened before A/"bar" that is).

HTH,
Paul Davis

Yes, good point. The A/"foo" metadata does get added to the revision history for A on the target, but not till the replicator reaches A/"bar". I suppose you could call that interleaving.

Adam

Reply via email to