You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Alexander Shraer (JIRA)" <ji...@apache.org> on 2013/03/26 21:51:17 UTC

[jira] [Updated] (ZOOKEEPER-1675) Make sync a quorum operation

     [ https://issues.apache.org/jira/browse/ZOOKEEPER-1675?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexander Shraer updated ZOOKEEPER-1675:
----------------------------------------

    Description: 
sync + read is supposed to return at least the latest write that completes before the sync starts. This is true if the leader doesn't change, but when it does it may not work. The problem happens when the old leader L1 still thinks that it is the leader but some other leader L2 was already elected and committed some operations. Suppose that follower F is connected to L1 and invokes a sync. Even though L1 responds to the sync, the recent operations committed by L2 will not be flushed to F so a subsequent read on F will not see these operations. 

To prevent this we should broadcast the sync like updates.

This problem is also mentioned in Section 4.4 of the ZooKeeper peper (but the proposed solution there is insufficient to solve the issue).

  was:
sync + read is supposed to return at least the latest write that completes before the sync starts. This is true if the leader doesn't change, but when it does it may not work. The problem happens when the old leader L1 still thinks that it is the leader but some other leader L2 was already elected and committed some operations. Suppose that follower F is connected to L1 and invokes a sync. Even though L1 responds to the sync, L2 may have already committed new operations so a subsequent read on F will not return these operations. 

To prevent this we should broadcast the sync like updates.

This problem is also mentioned in Section 4.4 of the ZooKeeper peper (but the proposed solution there is insufficient to solve the issue).

    
> Make sync a quorum operation
> ----------------------------
>
>                 Key: ZOOKEEPER-1675
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1675
>             Project: ZooKeeper
>          Issue Type: Bug
>    Affects Versions: 3.4.0, 3.5.0
>            Reporter: Alexander Shraer
>
> sync + read is supposed to return at least the latest write that completes before the sync starts. This is true if the leader doesn't change, but when it does it may not work. The problem happens when the old leader L1 still thinks that it is the leader but some other leader L2 was already elected and committed some operations. Suppose that follower F is connected to L1 and invokes a sync. Even though L1 responds to the sync, the recent operations committed by L2 will not be flushed to F so a subsequent read on F will not see these operations. 
> To prevent this we should broadcast the sync like updates.
> This problem is also mentioned in Section 4.4 of the ZooKeeper peper (but the proposed solution there is insufficient to solve the issue).

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