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)

Reply via email to