On 17 Nov 2010, at 19:24, Paul Davis wrote:

> On Wed, Nov 17, 2010 at 1:02 PM, [email protected] <[email protected]> wrote:
>> 
>> 
>> Sent from my HTC on the Now Network from Sprint!
>> 
>> ----- Reply message -----
>> From: "Luciano Ramalho" <[email protected]>
>> Date: Sat, Nov 6, 2010 15:52
>> Subject: Write race conditions, working without _rev
>> To: <[email protected]>
>> 
>> On Fri, Nov 5, 2010 at 2:03 PM, Paul Davis <[email protected]> 
>> wrote:
>>> In the second case, the second person to write the document wins,
>>> erasing any changes the first write's effects. The first writer will
>>> then be in a state where his view of the database will be
>>> inconsistent. The thing his, he can't know because without requiring a
>>> _rev token he'll never get a notification of any sort of error.
>> 
>> As I understand, the situation you describe above never happens in
>> practice with CouchDB. A second PUT to the same document _id will
>> always require the _rev attribute, so there's no way to overwrite a
>> previous update by accident. This is one of the best features of
>> CouchDB for document-oriented persistency.
>> 
>> 
>> --
>> Luciano Ramalho
>> programador repentista || stand-up programmer
>> Twitter: @luciano
>> 
> 
> That's true if you don't use _update handlers to hack around that part
> of CouchDB's design.

Update handlers can't bypass the rev check, they only take the decision
closer to the database. With two concurrent update functions, one will
fail and one will win.

Cheers
Jan
-- 

Reply via email to