zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mahadev Konar <maha...@yahoo-inc.com>
Subject Re: zoo_set() version question
Date Fri, 12 Dec 2008 22:15:03 GMT
That's right pat. I thought about that. Though ben already mentioned that we
missed the stat return in the c sync code.
But for the version, since its a test and set, we should also guarantee that
the version is a +1 to prev one. It would be really unintutive if it was
otherwise.

Also I noticed after ben's comments that the async callback zoo_aset() is
called back with stat argument. Only the zoo_get() sync api is missing stat
return code :).


mahadev

On 12/12/08 12:39 PM, "Patrick Hunt" <phunt@apache.org> wrote:

> Mahadev Konar wrote:
>> And you have a success, then the version of the node that denots your
>> successful zoo_set() above is
>>  = Version +1 
> 
> Mahadev, that's the current implementation, but I wasn't aware we were
> exposing that detail as something users should rely on. Is it documented
> anywhere in the docs? If this is "user visible" we should document it, I
> thought we weren't exposing this for a reason...
> 
>> 
>> 
>> mahadev
>> 
>> On 12/12/08 11:36 AM, "Avery Ching" <aching@yahoo-inc.com> wrote:
>> 
>>> Patrick,
>>> 
>>> Thanks for responding.
>>> 
>>> I agree that I can use zoo_exists and zoo_get to get the version of the
>>> znode as it exists currently.
>>> 
>>> The problem I am trying to solve is that getting the version from struct
>>> Stat in either zoo_exists or zoo_get may not be the same version that my
>>> last successful zoo_set used.  I would like to get the version that denotes
>>> my last successful zoo_set() operation to a particular znode.
>>> 
>>> I understand that the data and version to the znode may change immediately
>>> one or multiple times after my zoo_set() and this is fine, but I would still
>>> like to know the znode's versions of the data I set.
>>> 
>>> Avery
>>> 
>>> On 12/12/08 11:11 AM, "Patrick Hunt" <phunt@apache.org> wrote:
>>> 
>>>> Avery Ching wrote:
>>>>> If zoo_set() completes successfully with version != -1, can we assume
that
>>>>> version -> version + 1 for this znode?  If not, is there a way for
the
>>>>> user
>>>>> to get the version of the successfully completed zoo_set() operation?
>>>> You shouldn't rely on this, it may work, but it's not part of the
>>>> contract. Also, nothing says that some other client won't change the
>>>> node immediately after you change it.
>>>> 
>>>> You can access the version using zoo_exists or zoo_get - specifically
>>>> the "struct Stat stat" argument of either of those methods contains a
>>>> "version" member.
>>>> 
>>>> Patrick
>> 


Mime
View raw message