couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antony Blakey <>
Subject Re: couchdb transactions changes
Date Mon, 09 Feb 2009 00:38:50 GMT

On 09/02/2009, at 1:08 AM, Damien Katz wrote:

> On Feb 8, 2009, at 1:49 AM, Antony Blakey wrote:
>> On 08/02/2009, at 5:05 PM, Damien Katz wrote:
>>> In this case it has nothing to do with update transactions. MVCC  
>>> is about each read operation having it's own snapshot of the  
>>> database.
>> Sure, but the MVCC snapshots are created by update transactions, yes?
> Nope.

I'm have a good understanding of MVCC. THe consistent read state is  
determined by whatever ACID guarantees are provided by the server. In  
the case of a database that exposes a formal transactional API (e.g.  
Postgresql), the MVCC boundaries are determined by the user-visible  
transaction boundary.

CouchDB does provide some ACID guarantee, at the level of the document  
and rev tree. You won't see a partially updated document, or an  
inconsistent rev tree. So these update transactions e.g. a document  
update, must have SOME relationship to the MVCC commit point - more  
precisely a given document update must be contained within an MVCC  
boundary. Furthermore, conflict is determined by MVCC commits that  
update the same document, so the commit must be attempted and happen  
when the write happens, otherwise you cannot detect the conflict,  
generate the conflict data, and commit the conflict.

To what does your 'Nope' refer?

Antony Blakey
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

It's amazing that the one side of the conversation that survived is "I  
don't know art, but I know what I like". The reply from the artist was  
"Madam, so does a cow".
   -- Carl Kirkendall

View raw message