@Flavio, but doesn't a new session have to persist something in the state? If so, anything before this write will be visible to the session.
On 15 November 2014 11:47, Todd <[email protected]> wrote: > > Thanks Flavio and Ivan for the reply, i understood now, thank you. > > > At 2014-11-15 18:26:55, "Flavio Junqueira" <[email protected]> > 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. >> >>-Flavio >> >>On 15 Nov 2014, at 09:21, Ivan Kelly <[email protected]> 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, [email protected] <[email protected]> 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. >>>> >>>> >>>> >>>> >>>> [email protected] >>
