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)