[ https://issues.apache.org/jira/browse/BOOKKEEPER-826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14744671#comment-14744671 ]
Jia Zhai commented on BOOKKEEPER-826: ------------------------------------- Thanks, that is indeed a more suitable place to call sendSuccessfulCallback > PendingAddOp is ignoring ack response after meet ack quorum constraint > ----------------------------------------------------------------------- > > Key: BOOKKEEPER-826 > URL: https://issues.apache.org/jira/browse/BOOKKEEPER-826 > Project: Bookkeeper > Issue Type: Improvement > Components: bookkeeper-client > Reporter: Charles X > Assignee: Jia Zhai > Attachments: BOOKKEEPER-826.diff, BOOKKEEPER-826.patch > > > PendingAddOp is set to completed when it meets ack quorum. > {code} > if (ackSet.addBookieAndCheck(bookieIndex) && !completed) { > completed = true; > LOG.debug("Complete (lid:{}, eid:{}).", ledgerId, entryId); > // when completed an entry, try to send success add callbacks in > order > lh.sendAddSuccessCallbacks(); > } > {code} > responses are ignored after completed flag is set. > {code} > if (completed) { > // I am already finished, ignore incoming responses. > // otherwise, we might hit the following error handling logic, > which might cause bad things. > return; > } > {code} > It is not a correctness problem, but it would introduce performance issue > during ensemble change. A callback (could be acknowledge before ensemble > change) has to be delayed to ensemble change completion. -- This message was sent by Atlassian JIRA (v6.3.4#6332)