Agreed we should respond with the doc if we got at least one copy.

I'd also be in favour of a reponse header which indicates whether we met the requested read quorum. This would mirror the approach to writes, where there is currently the separate 201/202 response code based on quorum success. This allows for a bit more flexibility client-side w.r.t. availability considerations.

I'm not sure the best info to supply in the proposed header, whether it could be a simple true/false or more information on the number of nodes that responded and the quorum would be useful?

Mike.

On 07/10/2015 21:35, Robert Newson wrote:
Yes, I think it should. We should return the best answer we can.

On 7 Oct 2015, at 13:48, Robert Kowalski <[email protected]> wrote:

Hi,

I am currently taking a look at fabric and rexi.

Given I open a doc, a CouchDB cluster returns the document.

It also returns a doc, given not all replicas (r) are available and the
*cluster is aware of it*: if the co-ordinator knows that there are fewer
than r replicas available, it returns the document with a 200.


When a worker is not available *right now*, and the call to one of them
just times out (so the cluster is not aware that one node is unavailable),
the Cluster will return a general timeout error instead of a result [1],
even if just one of the worker fails.

Should the cluster return a result instead in those cases?


[1]
https://github.com/apache/couchdb-fabric/blob/405922c5dff36e0f5822e9a3422243f217d8d0e4/src/fabric_doc_open.erl#L61

Reply via email to