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)

Reply via email to