@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]
>>

Reply via email to