You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Sijie Guo (JIRA)" <ji...@apache.org> on 2015/09/07 19:56:45 UTC

[jira] [Commented] (BOOKKEEPER-826) PendingAddOp is ignoring ack response after meet ack quorum constraint

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

Sijie Guo commented on BOOKKEEPER-826:
--------------------------------------

[~zhaijia] thank you for your patch. but the change here isn't safe. since after ensemble change, it would unset successful results which would break the ack quorum constraint. sendSuccessfulCallback just after ensemble change isn't safe. I would propose a different patch.

> 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.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)