That's fine, but we should document it. Please enter a JIRA that the docs should talk about this.

I notice we have this in the prog guide:
"Each time a znode's data changes, the version number increases."

Sort of a moot point once we fix the zoo_set api but we should explicitly state that it increments by 1.

Patrick

Mahadev Konar wrote:
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

Reply via email to