couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kowsik <kow...@gmail.com>
Subject Idea: Piggyback doc on conflict
Date Sun, 23 Jan 2011 05:21:57 GMT
I've been spending a fair bit of time on profiling the performance
aspects of Couch. One common recurring theme is updating documents on
a write-heavy site. This is currently what happens:

PUT /db/doc_id
    <- 409 indicating conflict

loop do
    GET /db/doc_id
        <- 200

    PUT /db/doc_id
        <- 201 (successful and returns the new _rev)
end until we get a 201

What would be beneficial is if I can request the "current" doc during
PUT like so:

PUT /db/doc_id?include_doc=true
    <- 409 conflict (but the 'doc' at the current _rev is returned)

This would allow the caller to simply take the doc that was returned,
update it and try PUT again (eliminate the extra GET). This is
especially valuable when the app is on one geo and the db is in yet
another (think couchone or cloudant).

2 cents,

K.
---
http://twitter.com/pcapr
http://labs.mudynamics.com

Mime
View raw message