Znode的数据模型
1.是什么
Znode维护了一个stat结构,这个stat包含数据变化的版本号、访问控制列表变化、还有时间戳。版本号和时间戳一起,可让ZooKeeper验证缓存和协调更新。每次znode的数据发生了变化,版本号就增加。Java培训
例如,无论何时客户端检索数据,它也一起检索数据的版本号。并且当客户端执行更新或删除时,客户端必须提供他正在改变的znode的版本号。如果它提供的版本号和真实的数据版本号不一致,更新将会失败。Java培训
2.Stat结构体
Znode的数据模型_zookeeper
czxid- 引起这个znode创建的zxid,创建节点的事务的zxid(ZooKeeper Transaction Id)Java培训
ctime – znode被创建的毫秒数(从1970年开始)
mzxid – znode最后更新的zxid
mtime – znode最后修改的毫秒数(从1970年开始)
pZxid-znode最后更新的子节点zxid
cversion – znode子节点变化号,znode子节点修改次数
dataversion – znode数据变化号
aclVersion – znode访问控制列表的变化号
ephemeralOwner- 如果是临时节点,这个是znode拥有者的session id。如果不是临时节点则是0。
dataLength- znode的数据长度
numChildren – znode子节点数量
3.总结
ZooKeeper内部维护了一套类似UNIX的树形数据结构:由Znode构成的集合,
Znode的集合又是一个树形结构,每一个Znode又有很多属性进行描述。
Znode = path + data + Stat