zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Todd <bit1...@163.com>
Subject Re:Re: Does zookeeper guarantee read your write in consecutive sessions?
Date Sat, 15 Nov 2014 10:47:16 GMT

Thanks Flavio and Ivan for the reply, i understood now, thank you.

At 2014-11-15 18:26:55, "Flavio Junqueira" <fpjunqueira@yahoo.com.INVALID> wrote:
>It doesn't guarantee client order across sessions. When a client holding a valid session
connects to a different server, we check that the server has a state at least as recent as
the one it has observed before reconnecting. If the client instead creates a new session,
we don't perform that check so it could end up connecting to a server that is a bit behind
and consequently miss a previous successful write.
>On 15 Nov 2014, at 09:21, Ivan Kelly <ivan@ivankelly.net> wrote:
>> I'm not 100% sure, but i think session creation creates a znode
>> (session info is definitely passed around the quorum). Since it has to
>> create a znode, it will not response to the client until it sees the
>> znode has been created, which means it is up to date with the leader
>> until at least that point, so it will be able to see any updates from
>> the previous session.
>> -Ivan
>> On 14 November 2014 03:42, bit1129@163.com <bit1129@163.com> wrote:
>>> Hi,
>>> Consider the following scenario:
>>> ABCDE is the zookeeper ensemble,  ABC form the quorum.
>>> The following sequence may happen:
>>> 1. Client writes the data, and ABC are updated, but DE haven't because of the
network latency(say, long enough for this scenario).
>>> 2. Client closes the session.
>>> 3. Client start a new session in the same thread, Is zookeeper guarantee the
client to see the previously data set in the above step(that is,  it will connect to A, B
or C) or zookeeper does NOT guarantee this(that is,it may connect to D or E which doesn't
have the data set in above steps)
>>> I guess that Zookeeper doesn't guarantee  the client to see the data set in the
first step  because the two sessions are totally different ones to Zookeeper even they are
created by the same thread, and also because when the session is first created, there is no
zxid information that the server can be used to determine the client status.
>>> Please correct me if I am wrong, thanks.
>>> bit1129@163.com
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message