couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sean Copenhaver <sean.copenha...@gmail.com>
Subject Re: Update conflicts?
Date Tue, 05 Apr 2011 23:19:04 GMT
Keep in mind that besides both being doc db's they are very different products.

Also I'm not positive how far update functions can go. I believe the version conflict happens
before your update function. 

You should evaluate if you are trying to use couchdb too much like the average relational
db. Also think about if you can break up the docs in an appropriate way to avoid the conflicts.



On Apr 5, 2011, at 7:12 PM, Dennis Clark <dbfclark@gmail.com> wrote:

> What's your actual function? Update functions should work fine for your use case, but
can be a little finicky to get working, particularly the first time.
> 
> On Apr 5, 2011, at 7:01 PM, Luis Miguel Silva <luismiguelferreirasilva@gmail.com>
wrote:
> 
>> Thank you! I'll probably have to evaluate it then...
>> 
>> I've looked at the update handlers but i can't get them to work :o\...
>> I'm creating a _design document with a "updates" field with an update
>> function inside but i can't seem to get it to work.
>> 
>> Either way, i think it's time i evaluate MongoDB :o((... (this was
>> unexpected, i was completely sold on CouchDB :o|).
>> 
>> On Tue, Apr 5, 2011 at 4:50 PM, Sean Copenhaver
>> <sean.copenhaver@gmail.com> wrote:
>>> Ah, the problem is that couchdb does not do partial updates. It writes the whole
doc. MongoDB I believe does support partial updates though. No experience with it.
>>> 
>>> 
>>> 
>>> On Apr 5, 2011, at 6:41 PM, Luis Miguel Silva <luismiguelferreirasilva@gmail.com>
wrote:
>>> 
>>>> More or less!
>>>> 
>>>> The most common scenario will be:
>>>> - two or more processes writing to the same document, but only to a
>>>> specific attribute (not overwriting the whole document)
>>>> 
>>>> If, by any chance, two processes overwrite the same field, i'm ok with
>>>> the last one always winning.
>>>> 
>>>> Thanks,
>>>> Luis
>>>> 
>>>> On Tue, Apr 5, 2011 at 4:26 PM, Robert Newson <robert.newson@gmail.com>
wrote:
>>>>> "Ideally, we would be able to update without specifying the _rev, just
>>>>> posting (or, in this case PUTting) to the document..."
>>>>> 
>>>>> So you want to blindly overwrite some unknown data?
>>>>> 
>>>>> B.
>>>>> 
>>>>> On 5 April 2011 22:57, Zachary Zolton <zachary.zolton@gmail.com>
wrote:
>>>>>> Luis,
>>>>>> 
>>>>>> Checkout _update handlers:
>>>>>> 
>>>>>> http://wiki.apache.org/couchdb/Document_Update_Handlers
>>>>>> 
>>>>>> 
>>>>>> Cheers,
>>>>>> 
>>>>>> Zach
>>>>>> 
>>>>>> On Tue, Apr 5, 2011 at 4:46 PM, Luis Miguel Silva
>>>>>> <luismiguelferreirasilva@gmail.com> wrote:
>>>>>>> Dear all,
>>>>>>> 
>>>>>>> I'm trying to play around with updates and i'm bumping into some
problems.
>>>>>>> 
>>>>>>> Let's image we have to clients that poll a document from the
server at
>>>>>>> the same time and get the same _rev.
>>>>>>> Then one of them updates the doc based on the _rev it got:
>>>>>>> [root@xkitten ~]# curl -X PUT -d
>>>>>>> '{"_rev":"3-0d519bcf08130bf784f3c35d79760740","hello2":"fred2"}'
>>>>>>> http://localhost:5984/benchmark/test?conflicts=true
>>>>>>> {"ok":true,"id":"test","rev":"4-03640ebafbb4fcaf127844671f8e2de7"}
>>>>>>> Then another one tries to update the doc based on the same exact
_rev:
>>>>>>> [root@xkitten ~]# curl -X PUT -d
>>>>>>> '{"_rev":"3-0d519bcf08130bf784f3c35d79760740","hello3":"fred3"}'
>>>>>>> http://localhost:5984/benchmark/test?conflicts=true
>>>>>>> {"error":"conflict","reason":"Document update conflict."}
>>>>>>> [root@xkitten ~]#
>>>>>>> 
>>>>>>> Is there a way to avoid this?! (like...make the update just create
a
>>>>>>> new _rev or something)??
>>>>>>> 
>>>>>>> Ideally, we would be able to update without specifying the _rev,
just
>>>>>>> posting (or, in this case PUTting) to the document...
>>>>>>> 
>>>>>>> Thoughts??
>>>>>>> 
>>>>>>> Thank you,
>>>>>>> Luis
>>>>>>> 
>>>>>> 
>>>>> 
>>> 

Mime
View raw message