tonysun83 commented on pull request #3909:
URL: https://github.com/apache/couchdb/pull/3909#issuecomment-1023804432


   I've updated the code to reflect some of the suggestions.
   
   ```
   [noreply, forbidden, noreply] -> forbidden, but return 201 for overall 
bulk_docs
   [forbidden, noreply, forbidden] -> forbidden, but return 201 for overall 
bulk_docs
   [{ok, Doc1}, forbidden, {ok, Doc2}] -> {ok, {ok, Doc1}, {ok, Doc2}} - success
   [forbidden, {ok, Doc1}, forbidden] -> {error, {mismatched_errors, Replies}}
   [forbidden, some_other_error, forbidden] -> {error, {mismatched_errors, 
Replies}}
   [error_a, error_b, forbidden] -> {error, {mismatched_errors, Replies}}
   ```
   
   `[noreply, noreply,  forbidden]` -> This one is tricky because and I don't 
have an answer for this. Right now it would be a success because quorum rules 
would it let slide through by the order of the `noreply`. In order to check for 
the possibility of a forbidden, we would have to wait for all nodes to respond 
for every request before making a decision. I think that's going to make things 
really non performant. Hypothetically, let's say we  7 nodes and one node 
extends the revision tree and is the most up to date and the other 6 for some 
reason are behind and the revision tree is not extended for all of them. I 
think we should leave the quorum rules here in place. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to