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

Alexander Shraer commented on ZOOKEEPER-2136:
---------------------------------------------

Hi Flavio,

The problem is that right now, sync is the only operation in ZooKeeper that 
makes timing assumptions for safety as opposed to liveness, and as pointed out 
by [~hdeng] during reconfiguration the exposed race condition is especially 
risky since its implemented in a way where when the leader is removed it is 
abandoned by followers instead of being shutting down.
It wouldn't be nice to require users to use setData/create if they want strong 
read semantics.

The idea to provide a strong read (quorum read) operation instead of fixing 
sync may be a good option. I guess the unique thing about sync was supposed to 
be that it gets this path as a parameter and was supposed to be able to sync 
just part of the tree (right ?) but that never happened. I'm not sure, but 
perhaps its better to just add a quorum read ?



 


 

> Sync() should get quorum acks.
> ------------------------------
>
>                 Key: ZOOKEEPER-2136
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2136
>             Project: ZooKeeper
>          Issue Type: Sub-task
>            Reporter: Hongchao Deng
>            Assignee: Hongchao Deng
>             Fix For: 3.6.0
>
>         Attachments: ZOOKEEPER-2000.patch
>
>
> Currently if the sync packet goes to leader it doesn't get quorum acks. This 
> is a problem during reconfig and leader changes. testPortChange() flaky 
> failure is caused by such case.
> I proposed to change sync() semantics to require quorum acks in any case.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to