couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Anderson" <>
Subject Re: multi-document acid transactions
Date Wed, 09 Apr 2008 19:01:45 GMT

I can see the value of this feature, but there's also a lot of value
in being able to do fire-and-forget multi document inserts. In my
application I'm relying on uniq document id semantics, and was very
happy to see that bulk inserts would create some but not all documents
when the _rev property was absent and some ids were taken. It would
extremely useful if there was a parameter that could choose not to run
the inserts in a transaction.

I'll understand if that is infeasible. If you don't have
time/inclination to make the change, I'd happily pour over the diffs
to try to add the option. Perhaps you can give a pointer to the

Thanks for everything!

On 4/9/08, Damien Katz <> wrote:
> FYI, CouchDB now has multi-document ACID transactions. This were
> checked in last week as part of a larger refactoring.
> To do a multi-document update, simply use the bulk update POST option.
> If any document fails to commit due to conflict (or whatever reason),
> then all the documents fail.  You can also delete documents in the
> same bulk transaction, by setting the _deleted member in the document
> to true.
> So now if all transactions happen on the single instance, you can use
> bulk transactions and keep relationships and heirarchies amongst
> documents intact at all times. But once the application is
> distributed, then you potentially lose the ACID properties of the
> updates, as the replication system won't preserve the atomicity of the
> multi-document update.
> This mean I don't recommend relying on bulk updates to preserve inter-
> document ACID properties in distributed applications, but it's
> workable for applications that use only a single database instance.

Chris Anderson

View raw message