You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "chenzongzhi (JIRA)" <ji...@apache.org> on 2017/11/15 08:02:00 UTC

[jira] [Created] (ZOOKEEPER-2941) support client FIFO client order, not only channel FIFO client order

chenzongzhi created ZOOKEEPER-2941:
--------------------------------------

             Summary: support client FIFO client order, not only channel FIFO client order
                 Key: ZOOKEEPER-2941
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2941
             Project: ZooKeeper
          Issue Type: New Feature
            Reporter: chenzongzhi


right now, zookeeper only promise channel FIFO order,  in this case the third operation my arrive before the second operation:

since zookeeper promise that these operation are sending in pipeline, so the later operation don't need to wait the prior's confirmation. so the three operations
1. set a = 1
2. set b = 1
3. set ready = true

these three operations are sending in pipeline, the first operation set a = 1 is process ok, and the second operation set b = 1 is on the way. then there is something wrong with the leader, then the client connect a new tcp connection with the leader. And then the client send the last operation, since there is two tcp connection from client to server, even through the first is closed from the client's view, but there maybe still some redidual data, so we can't promise whether the second operation will arrive to the leader, and we also can't promise that the second operation arrive to the leader before the third one or after the third one. so this violate the client FIFO order.

we know that http://atomix.io/copycat/docs/client-interaction/#preserving-program-order   provide client level FIFO order. 
How about support client level FIFO order

Thank you 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)