Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-2941

support client FIFO client order, not only channel FIFO client order

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      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

      Attachments

        Activity

          People

            Unassigned Unassigned
            baotiao chenzongzhi
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: