You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Isaac Z. Schlueter (JIRA)" <ji...@apache.org> on 2014/02/14 01:47:19 UTC

[jira] [Created] (COUCHDB-2063) Return current document with 409 response

Isaac Z. Schlueter created COUCHDB-2063:
-------------------------------------------

             Summary: Return current document with 409 response
                 Key: COUCHDB-2063
                 URL: https://issues.apache.org/jira/browse/COUCHDB-2063
             Project: CouchDB
          Issue Type: Bug
      Security Level: public (Regular issues)
            Reporter: Isaac Z. Schlueter


You do a PUT, and it doesn't have the current rev.
So then you do a GET, to get the current rev.
Then you re-try your PUT.

Please make the second request unnecessary.  Just send the current doc in the 409 response body, unless the user opts-out with a `?send_current=false` or something.

There are almost no examples of cases where you'd do a PUT and *not* want to immediately GET the doc on a 409.  The only case I could think of would be an in-place modifying follower where you don't care about a 409, because it means that another change is coming in the stream anyway.  Are there any others?  Even in those cases, you could just set the opt-out flag to not get the current data in the response.

The only harm in doing this is that outdated apps will still do the (now-unnecessary) GET.  That's not so bad.  They'll keep working.

Systems with a single write-master and multiple read-slaves, however, will be able to leverage this to great effect, rather than relying on cache-busting query params and other kludges.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)