[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14907760#comment-14907760
 ] 

Jia Zhai commented on BOOKKEEPER-826:
-------------------------------------

Hi [~hustlmsp],  thanks a lot for this. The fix looks good,  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)

Reply via email to