首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zookeeper PERSISTENT_SEQUENTIAL递增2

Zookeeper PERSISTENT_SEQUENTIAL递增2
EN

Stack Overflow用户
提问于 2012-04-27 01:05:29
回答 3查看 2K关注 0票数 5

在ZooKeeper中执行一个简单的create()方法调用似乎是递增2,而不是普通的递增。虽然这实际上与JavaDoc是一致的,它只指定序列是“单调递增”,而没有引用增量,但我不确定为什么会发生这种情况。

代码语言:javascript
复制
zk.create(path, value, Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);

我以"key-v-0000000056“结束,然后"key-v-0000000058"...where 57开始了吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-27 12:55:57

是否在创建下一个密钥之前删除key-v-0000000056?顺序id只是父节点的cversion,在父节点上删除/创建子节点将增加cversion。

票数 3
EN

Stack Overflow用户

发布于 2012-04-27 17:10:29

创建或删除任何子znode都会递增父znode的cversion。因为在你正在使用的ZooKeeper 3.3.3中,用于连续创建Z节点的计数器是cversion本身,所以在两个连续创建之间的任何“虚假”创建/删除都是你所经历的行为的最有可能的原因。

请记住,在ZooKeeper 3.4.x中,删除操作不再影响父序列计数器:DataNode在内部保存一个PersistedStat,其中的cversion精确表示创建的数量;相反,通过查询节点获得的Stat的cversion仍然表示子更改的数量:Stat.cversion = 2*PersistedStat.cversion - Stat.numChildren

票数 7
EN

Stack Overflow用户

发布于 2012-05-17 10:21:36

在官方文件中,它说:

如果设置了ZOO_SEQUENCE标志,则会将唯一的单调递增序列号附加到路径名中。“

这保证了数字是递增的,但不一定是连续的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10338076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档