+1. This is how we believed sync was implemented already. Getting these
semantics correct would be very important for us.
On Mar 10, 2015 2:57 AM, "Flavio Junqueira" <fpjunque...@yahoo.com.invalid>
wrote:

> For one thing, this should clean up the mess that we had to do in the code
> to have sync() the way it is, since it was neither a regular nor a regular
> quorum write. I don't know why you say that it changes the behavior. It
> changes the internal behavior, but the expected behavior exposed through
> the API call remains the same, so no user should care about it, it doesn't
> break any code.
>
> -Flavio
>
> > On 10 Mar 2015, at 03:31, Hongchao Deng <hd...@cloudera.com> wrote:
> >
> > Hi all,
> >
> > I recently worked on fixing flaky test -- testPortChange(), which is
> > related to ZOOKEEPER-2000.
> >
> > This is what I have figured out:
> >
> > * Server (1) and (2) were followers, (3) was the leader.
> > * client connected to (1), did a reconfig().
> > * (1) and (2) formed a quorum, reconfig was successful, and returned.
> > * (3) still thinks he's the leader, so using LeaderZooKeeperServer.
> > * client connected to (3) did a sync(), and the sync didn't go through a
> > quorum. THE CLIENT WHO DID SYNC() GETS WRONG BEHAVIOR. There's a split
> > brain here for sync().
> > * Then (3) gradually moves to the new quorum config.
> >
> > I'm proposing to change sync() to need quorum acks. I've privately talked
> > with my friend Xiang Li who's working on etcd. He previously had similar
> > experience and finally changed sync to go through quorum.
> >
> > Since this change affects the behavior of sync(), I'm asking in public if
> > there's any concern/assumption? Let's discuss it here.
> >
> > Best,
> > --
> > *- Hongchao Deng*
> > *Software Engineer*
>
>

Reply via email to