You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Antony Blakey <an...@gmail.com> on 2009/01/31 04:58:53 UTC
Transactional _bulk_docs
Is it possible to get a PMC decision on whether a transactional update
API for single-node applications will be provided? I understand that
there is not yet PMC concensus on this issue.
This is important for an application I am currently developing.
Without a transactional interface the code becomes vastly more
complicated.
For example, I have documents that can be cloned. The cloned document
contains a reference to the originating document. Then I delete the
original document, the clone history needs to be updated to remove the
reference to the original document and replace it with an original-
deleted history item. There is a business case that requires this
consistency.
With a transactional API this is easy. Without it, I can't see a way
to maintain consistency in the face of concurrent application access
and/or failure.
I am in the late stages of this project, so I'm looking for some
certainty on this issue. I understand that a transactional API is more
difficult for multi-node setups, but a) my application doesn't require
a multi-node setup and b) scalaris provides distributed ACID, so there
is already an erlang exemplar that provides this facility.
The issue of conflict resolution during replication isn't a problem
for me because this particular use case is single-writer multiple-
reader. But even if it were an issue, the user-interface and
administrative issues to do with managing replication conflicts are
significantly different than the problem of maintaining local
consistency during what a user sees conceptually as a transactional
operation i.e. a form submit.
IMO, the argument that local operations should have the same
operational semantics/characteristics/interface/results as
replication, doesn't account for the fact that local operations have a
vastly different context than replication. I see a parallel here with
the idea of transparent object distribution, which in the end failed
because remote objects had failure modes and performance
considerations that just couldn't be hidden - it feels like the
CouchDB philosophy is to constrain local operations as though there
were remote in order to provide a uniform API and model.
Anyway, I'm just seeking some PMC guidance on this issue.
Thanks,
Antony Blakey
--------------------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787
Isn't it enough to see that a garden is beautiful without having to
believe that there are fairies at the bottom of it too?
-- Douglas Adams
Re: Transactional _bulk_docs
Posted by Paul Carey <pa...@gmail.com>.
I'm also keen on transactional semantics being maintained, whether at
_bulk_docs or an alternative endpoint whose name better expresses
intent and limitations.
Paul