On 6 Mar 2009, at 20:24, aju wrote:

Jason Smith wrote:
aju wrote:
in a RDBMS when you update an existing row (document) it is a single step. (there's no revision term here obviously). likewise in subversion when you commit an updated document it is a single step.
Well in a RDBMS if you have a common constraint like uniqueness on a column, you have to decide whether to INSERT or UPDATE. So most likely, you will grab a big lock, SELECT something, process the data, INSERT or UPDATE, then release the lock. So that's two queries as well.

you are right. probably bad example, but i still can't see the argument for not just updating a document based on the latest revision. how can it hurt?

hmm, or perhaps instead one could specify a special rev value "latest"

        PUT /somedatabase/some_doc_id?rev=latest


Imagine Wikipedia. You open a page for editing and sit down and write a nice and well-researched paragraph about your favourite band. A minute before you are done, I open the same page for editing, having the same base version that you have. Now you save your page and submit your work to Wikipedia. Then I save my changes to the version I know is previous, but doesn't include your changes. My change gets saved and yours is gone. Using _rev's I can't save my changes unless I get a newer version with your changes.

For the record: CouchDB does not store diffs.

Cheers
Jan
--


Reply via email to