Hi, i agree with Michi. The documentation contains this statement: "ZooKeeper doesn't use real time, or clock time, at all except to put timestamps into the stat structure on znode creation and znode modification." So i would say the mtime is just there do give some more human-readable information.
But you can not use mtime to get a "happened-before" info. For "happend-before" you should use the mzxid. Again from docu: "Every change to the ZooKeeper state receives a stamp in the form of a *zxid * (ZooKeeper Transaction Id). This exposes the total ordering of all changes to ZooKeeper. Each change will have a unique zxid and if zxid1 is smaller than zxid2 then zxid1 happened before zxid2." -- Hartmut Am 18. April 2012 08:34 schrieb Michi Mutsuzaki <[email protected]>: > Hi Martin, > > The leader calls System.currentTimeMillis() and use that value as the > mtime of znode. So if the leader changes and the new leader's time is > set differently, mtime can go down. > > --Michi > > On Tue, Apr 17, 2012 at 7:45 PM, Martin Kou <[email protected]> wrote: > > Hi folks, > > > > There're a couple of timestamp values attached to znodes - are there any > > guarantees about the consistency of those timestamps? e.g. if a set > > operation have changed a znode's version from 2 to 3... is it guaranteed > > that the mtime of the znode can only increase? > > > > Best Regards, > > Martin Kou >
