> On 24 Oct 2014, at 04:15, [email protected] wrote:
>
> Thanks Ritesh for the detailed explanation.
>
> With FiFO client order and Asynchronous Linearizability as you mentioned, Can
> I say that even the same client sends two request A and B asynchronously ,
> the server can still guarantee to process the request A ahead of B? If this
> is true, the client must do something to help achieve this Asynchronous
> Linearizability
>
> Thanks.
>
>
>
> [email protected]
>
> From: Ritesh Jaltare
> Date: 2014-10-24 04:54
> To: user
> CC: [email protected]
> Subject: Re: RE: A question about sequential order consistency that zookeeper
> garantees
> Hi bit1129
>
> Zookeeper provides 2 basic ordering guarantees:
>
> 1) Linearizable writes: What this means is all updates that change the state
> of zookeeper are serializable and respect the precedence order.
>
> 2) FIFO client order: All requests from a given client are executed in the
> order that they were sent by the client.
>
> Now let us take your scenario and see how these 2 ordering guarantees
> interact. . Suppose Client 1 sends request-1A and request-1B in order and
> Client2 sends request-2A and request-2B in order. These requests can reach
> the zookeeper server in any order. What zookeeper guarantees is that
> request-1A and request-1B would retain the same order in the processing
> pipeline. That is, request-1B would be processed by zookeeper only after
> request-1A. And similarly for Client 2 , request-2B would be processed by
> zookeeper only after request-2A.
>
> So the possible valid orderings are
>
> Request-2A -> Request-1A -> Request 2B -> Request-1B
>
> Request-1A -> Request-2A -> Request 2B -> Request-1B
>
> Request-1A -> Request-2A -> Request 1B -> Request-2B
>
> and so on...
>
> In each of thee orderings, you can see that zookeeper maintains a fifo client
> order. What zookeeper offers is Asynchronous Linearizability and not
> sequential consistency. Asynchronous Linearizability is a stonger condition
> that sequential consistency.
>
> Thanks
> Ritesh Jaltare, Pivotal
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Wed, Oct 22, 2014 at 10:35 PM, Rakesh R <[email protected]> wrote:
>
> Yes.
>
> -Rakesh
>
> From: [email protected] [mailto:[email protected]]
> Sent: 23 October 2014 10:43
> To: Rakesh R
> Subject: Re: RE: A question about sequential order consistency that zookeeper
> garantees
>
> Thanks Rakesh for the quick reply. So, I understand that the time that
> clients send the request doesn't matter,but the server will "queue" the
> request and process the request.
>
>
>
> ________________________________
> [email protected]<mailto:[email protected]>
>
> From: Rakesh R<mailto:[email protected]>
> Date: 2014-10-23 12:33
> To: [email protected]<mailto:[email protected]>;
> [email protected]<mailto:[email protected]>
> Subject: RE: A question about sequential order consistency that zookeeper
> garantees
> Hi,
>
> Sequential Order Guarantee:
> ---------------------------
>
> Server view:- It will process the requests in sequential fashion.
>
> Say, there are two clients connected with the server, client-1 and client-2.
> Assume application had created a znode /myapp and there is a logic to do
> distributed locking mechanism. Now both these clients will try to acquire
> lock by creating '/myapp/lock' znode. I'm calling these requests as
> request-1(create /myapp/lock) and request-2(create /myapp/lock). Again
> assume, server receives the requests in the order of request-2 and then
> request-1. For simplicity, you can imagine there is a Queue maintained at the
> server and all these requests will be put into this Queue and executes in
> FIFO order. First, server will pick request-2 and creates /myapp/lock znode.
> Also, it will send watcher notifications if anyone has registered. Then move
> on to the next request-2(create /myapp/lock), while executing this will throw
> exception saying NodeExistsException.
>
> ZooKeeper maintains global ordering but how? - Every write is assigned a
> globally unique id, sequentially ordered identifier called a zxid, or
> ZooKeeper transaction id. This guarantees a global order to all updates in a
> ZooKeeper ensemble.
>
>
> Regards,
> Rakesh
> -----Original Message-----
> From: [email protected]<mailto:[email protected]> [mailto:[email protected]]
> Sent: 23 October 2014 08:46
> To: user
> Subject: A question about sequential order consistency that zookeeper
> garantees
>
> Hi,Zookeepers,
>
> I'd like to ask a question about sequential order consistency that zookeeper
> garantees.
>
> Say, 2 zookeeper clients want to update the same znode data one after the
> other.Client1 sends the request 1 second before Client2.
> What would be the end result? There is no order gurantee here, dure to
> network delay, it is likely that clients1 send the request before client2,
> but the zookeeper servers first execute the request from Client1 before
> client2
>
> If this is not what sequential order consistency means, then what exactly
> does sequential order consistencymeans, what does zookeeper exactly garantee?
>
> Thanks.
>
>
> [email protected]<mailto:[email protected]>
>
>
>
> --
> Ritesh Jaltare, Pivotal