ivankelly commented on a change in pull request #2303:
URL: https://github.com/apache/bookkeeper/pull/2303#discussion_r412008767
##########
File path:
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RoundRobinDistributionSchedule.java
##########
@@ -373,29 +373,43 @@ public synchronized void addBookie(int
bookieIndexHeardFrom, int rc) {
public synchronized boolean checkCovered() {
// now check if there are any write quorums, with |ackQuorum|
nodes available
for (int i = 0; i < ensembleSize; i++) {
- int nodesNotCovered = 0;
- int nodesOkay = 0;
- int nodesUninitialized = 0;
+ /* Nodes which have either responded with an error other than
NoSuch{Entry,Ledger},
Review comment:
Coverage is not ```Qw - Qa + 1```. It's at least one bookie from all
possible ack quorums.
Take your example above. You have b1=OK, b2=Unknown, b3=Unknown. But an
entry could possibly be written to b2 & b3 and have attained ack quorum. So we
need to check all write sets, of which there are |ensemble|, since we are
roundrobining.
Within an individual writeset, we only need to hear from ```(Qw - Qa) + 1```
nodes, which is what the change submitted is doing.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]