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" <ph...@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" <ach...@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" <ph...@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 >>