[ https://issues.apache.org/jira/browse/ZOOKEEPER-1675?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13616477#comment-13616477 ]
Alexander Shraer commented on ZOOKEEPER-1675: --------------------------------------------- Hi, Its pretty much the same as an empty write, and perhaps an easy way to implement it without introducing a new operation. Unlike writes, I don't think we want to log the syncs. Anyway, users can currently do "write + read" instead of "sync + read" to get strong semantics. Good point about the connection change. Yes, this is a problem. I'm not sure how this is implemented exactly, but intuitively we need the client to update its last-seen-zxid once the sync completes. This way if the connection change happens after the sync completes the client will only connect to someone at least as up-to-date as the sync. And if the connection switch happens before the sync completes then the sync will fail, which is also fine. Alex > 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