码迷,mamicode.com
首页 > 其他好文 > 详细

ZooKeeper入门(三) ZooKeeper数据模型

时间:2017-11-09 00:45:58      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:参考   strong   org   span   apach   trunk   .com   run   image   

 1 简述

ZooKeeper可以看成一种高可用性的文件系统,但是,它没有文件和目录,而是使用节点,称为znode

znode可以作为保存数据的容器(如同文件),也可以作为保存其他节点的容器(如同目录)。如下图

技术分享

 

 

 2 节点中存储的数据

2.1 版本号

对于每个znode来说,存在三个版本号:

dataVersion

数据版本号,每次对节点进行修改,dataVersion的值都会增加1

cversion 
子节点的版本号。当znode的子节点有变化时,cversion 的值就会增加1

aclVersion 
ACL的版本号,关于znode的ACL(Access Control List,访问控制),可以参考

http://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#ch_zkDataModel

以数据版本号来说明zk中版本号的作用:

每当客户端检索数据时,它将同时检索数据的版本号。并且如果一个客户端执行了某个节点的更新或删除操作,它也必须提供要被操作的数据的版本号。如果所提供的数据版本号与实际的不匹配,那么这个操作将会失败。

如下图:

技术分享

 

 

2.2 事务ID

事物id, Zxid,分cZxid和 mZxid 

cZxid 
Znode创建的事务id。

mZxid 
Znode被修改的事务id,即每次对znode的修改都会更新mZxid。

如下图,是Zxid在客户端重连中的作用:

 技术分享

 2.3 时间戳

包括znode的创建时间和修改时间,创建时间是znode创建时的时间,创建后就不会改变;修改时间在每次更新znode时都会发生变化。

 

ZooKeeper入门(三) ZooKeeper数据模型

标签:参考   strong   org   span   apach   trunk   .com   run   image   

原文地址:http://www.cnblogs.com/zcjcsl/p/7806710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!