You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Aniruddha (JIRA)" <ji...@apache.org> on 2012/09/11 23:34:07 UTC

[jira] [Created] (BOOKKEEPER-401) LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper

Aniruddha created BOOKKEEPER-401:
------------------------------------

             Summary: LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper
                 Key: BOOKKEEPER-401
                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-401
             Project: Bookkeeper
          Issue Type: Bug
          Components: bookkeeper-client
            Reporter: Aniruddha


Consider the following case: 
Ensemble is A, B, C
It changes to A, B, D locally and an update to write to ZK is in progress. 
We get a write request that writes to this ensemble, receives responses and acks back a success. 
The ensemble write to zk fails. We've acked an add for which there is no information in zookeeper. 


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (BOOKKEEPER-401) LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13454199#comment-13454199 ] 

Ivan Kelly commented on BOOKKEEPER-401:
---------------------------------------

I think I fixed this in BOOKKEEPER-208. Any time I handle a bookie failure, I block add completions until zk acknowledges the write.
                
> LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper
> -------------------------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-401
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-401
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-client
>            Reporter: Aniruddha
>            Priority: Minor
>
> Consider the following case: 
> Ensemble is A, B, C
> It changes to A, B, D locally and an update to write to ZK is in progress. 
> We get a write request that writes to this ensemble, receives responses and acks back a success. 
> The ensemble write to zk fails. We've acked an add for which there is no information in zookeeper. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (BOOKKEEPER-401) LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper

Posted by "Aniruddha (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13454250#comment-13454250 ] 

Aniruddha commented on BOOKKEEPER-401:
--------------------------------------

Ah, thanks. Looks like it went out today. 
                
> LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper
> -------------------------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-401
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-401
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-client
>            Reporter: Aniruddha
>            Priority: Minor
>
> Consider the following case: 
> Ensemble is A, B, C
> It changes to A, B, D locally and an update to write to ZK is in progress. 
> We get a write request that writes to this ensemble, receives responses and acks back a success. 
> The ensemble write to zk fails. We've acked an add for which there is no information in zookeeper. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (BOOKKEEPER-401) LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper

Posted by "Aniruddha (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-401?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aniruddha updated BOOKKEEPER-401:
---------------------------------

    Priority: Minor  (was: Major)
    
> LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper
> -------------------------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-401
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-401
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-client
>            Reporter: Aniruddha
>            Priority: Minor
>
> Consider the following case: 
> Ensemble is A, B, C
> It changes to A, B, D locally and an update to write to ZK is in progress. 
> We get a write request that writes to this ensemble, receives responses and acks back a success. 
> The ensemble write to zk fails. We've acked an add for which there is no information in zookeeper. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (BOOKKEEPER-401) LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper

Posted by "Aniruddha (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13454115#comment-13454115 ] 

Aniruddha commented on BOOKKEEPER-401:
--------------------------------------

Ah, you're right. However, this now gives us another case. Suppose we timeout and invoke handleBookieFailure. While the metadata is being updated in memory by one thread, we get a response from the bookie and ack the entry. We have now acked an entry written to the old bookie. 

Also, this would make the code more maintainable. 
                
> LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper
> -------------------------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-401
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-401
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-client
>            Reporter: Aniruddha
>
> Consider the following case: 
> Ensemble is A, B, C
> It changes to A, B, D locally and an update to write to ZK is in progress. 
> We get a write request that writes to this ensemble, receives responses and acks back a success. 
> The ensemble write to zk fails. We've acked an add for which there is no information in zookeeper. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (BOOKKEEPER-401) LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13453921#comment-13453921 ] 

Sijie Guo commented on BOOKKEEPER-401:
--------------------------------------

If I remembered correctly, we only 'unsetSuccessAndSendWriteRequest' to new selected bookie after succeed to write ensemble info to ZooKeeper. which means we won't acked an add before the metadata persisted in ZooKeeper.

Do you encounter such issue? Is there any log about it?
                
> LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper
> -------------------------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-401
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-401
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-client
>            Reporter: Aniruddha
>
> Consider the following case: 
> Ensemble is A, B, C
> It changes to A, B, D locally and an update to write to ZK is in progress. 
> We get a write request that writes to this ensemble, receives responses and acks back a success. 
> The ensemble write to zk fails. We've acked an add for which there is no information in zookeeper. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Resolved] (BOOKKEEPER-401) LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-401?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly resolved BOOKKEEPER-401.
-----------------------------------

    Resolution: Not A Problem

BOOKKEEPER-208 & BOOKKEEPER-403 fix this, so I don't think this is an issue anymore.
                
> LedgerHandle should not ack entries till an ensemble change has been persisted to Zookeeper
> -------------------------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-401
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-401
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-client
>            Reporter: Aniruddha
>            Priority: Minor
>
> Consider the following case: 
> Ensemble is A, B, C
> It changes to A, B, D locally and an update to write to ZK is in progress. 
> We get a write request that writes to this ensemble, receives responses and acks back a success. 
> The ensemble write to zk fails. We've acked an add for which there is no information in zookeeper. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira