couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Lehnardt <...@apache.org>
Subject Re: [jira] Closed: (COUCHDB-188) _bulk_docs fails when deleting and adding a doc with the same id
Date Mon, 26 Jan 2009 10:03:11 GMT

On 24 Jan 2009, at 21:37, Matt Goodall wrote:

> 2009/1/24 Matt Goodall <matt.goodall@gmail.com>:
>> Hi,
>>
>> I'm a bit confused why this was closed. Perhaps a description of the
>> "new behaviour" is available somewhere?
>>
>> The only mention of anything related to a change in _bulk_docs I've
>> *noticed* is about not failing everything in the list of updates
>> (might be nice if that was optional, actually) and the associated
>> error reporting. However, that doesn't necessarily fix the problem I
>> described.
>
> Actually, I think I misunderstood the change. It seems it's only to
> say what document failed, i.e. better error reporting, in which case,
> a) the change sounds good, b) there is nothing to make optional, c) I
> still don't think it addresses the issue. Please correct me if I'm
> wrong!

We can't sensibly make bulk requests with database partitioning
over multiple nodes. Damien talked about changing the bulk request
behaviour also for single-nodes to avoid confusion. If I understand
correctly, bulk writes then work a lot like replication, in that your
data gets written in any case but might cause conflicts and you
can find out where conflicts occurred using a view checking
the `_conflicts` member of a doc.


>> Can anyone explain how the planned change fixes things?
>>
>> Thanks, Matt
>>
>> 2009/1/24 Jan Lehnardt (JIRA) <jira@apache.org>:
>>>
>>>    [ https://issues.apache.org/jira/browse/COUCHDB-188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

>>>  ]
>>>
>>> Jan Lehnardt closed COUCHDB-188.
>>> --------------------------------
>>>
>>>      Resolution: Invalid
>>>   Fix Version/s: 0.9
>>>
>>> bulk update will get a new behaviour in 0.9. Closing
>>>
>>>> _bulk_docs fails when deleting and adding a doc with the same id
>>>> ----------------------------------------------------------------
>>>>
>>>>                Key: COUCHDB-188
>>>>                URL: https://issues.apache.org/jira/browse/COUCHDB-188
>>>>            Project: CouchDB
>>>>         Issue Type: Bug
>>>>         Components: Database Core
>>>>   Affects Versions: 0.9
>>>>        Environment: CouchDB revision 730414.
>>>>           Reporter: Matt Goodall
>>>>            Fix For: 0.9
>>>>
>>>>
>>>> CouchDB returns a "412 Precondition Failed" when the list of  
>>>> changes sent to _bulk_docs deletes a document and later creates a  
>>>> document with the same id as the deleted document:
>>>>    {"docs": [
>>>>        {"_id": "docid", "_rev": "<rev>", "_deleted": true},
>>>>        {"_id": "docid"}
>>>>        ]}
>>>> Once fixed, the response JSON document  will return the same  
>>>> docid twice in the list but it's presumably ordered consistently  
>>>> with the request data so any client should be able to understand  
>>>> the response.
>>>> Demonstrating the problem using curl is easy enough:
>>>> $ curl -X PUT http://localhost:5984/test
>>>> {"ok":true}
>>>> $ curl -X PUT -d "{}" http://localhost:5984/test/docid
>>>> {"ok":true,"id":"docid","rev":"4140747751"}
>>>> $ curl -X POST -d '{"docs": [{"_id": "docid", "_rev":  
>>>> "4140747751", "_deleted": true}, {"_id": "docid"}]}' http://localhost:5984/test/_bulk_docs
>>>> {"error":"conflict","reason":"Document update conflict."}
>>>> Note: this is likely related to COUCHDB-172.
>>>
>>> --
>>> This message is automatically generated by JIRA.
>>> -
>>> You can reply to this email to add a comment to the issue online.
>>>
>>>
>>
>


Mime
View raw message