You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Jia Zhai (JIRA)" <ji...@apache.org> on 2015/08/17 03:22:45 UTC

[jira] [Updated] (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:all-tabpanel ]

Jia Zhai updated BOOKKEEPER-826:
--------------------------------
    Attachment: BOOKKEEPER-826.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)