Zookeeper短暂节点是否写入磁盘?

时间:2018-01-08 23:50:30

标签: apache-zookeeper

Zookeeper短暂节点是否写入磁盘?

我知道在Zookeeper执行写入客户端之前,正常的Zookeeper节点会写入磁盘。

但是,临时节点仅在客户端会话期间持续,因此如果zookeeper节点全部崩溃,则根据定义,客户端会话将被破坏。因此不需要写入磁盘,因为在集合重新启动时不会重新创建临时节点。因此从理论上讲,短暂的节点似乎只需要存储在内存中。

这是如何实现的?

1 个答案:

答案 0 :(得分:1)

我自己遇到了这个问题,并注意到它已经在Zookeeper mailing list上得到了解答,我在这里发布给任何发现此问题的人。

简而言之,是的,短暂的节点确实被写入磁盘。因此,即使整个Zookeeper集合已关闭,客户端会话也可以保持不变。引用Patrick Hunt's answer from the mailing list(强调我的):

  

短暂的znodes在某种意义上被视为持久的znodes   法定人数的节点需要同意任何变更。因此编写了znode   到事务日志。

     

客户端会话在客户端关闭时结束   明确会话或ZK仲裁负责人决定会话   已过期(基于协商会话超时)。只有一个   领导者是活跃的会话可以过期(或关闭该会议)。 :当   你关闭了一个整体来保持会话。如果你是,为了   例如,关闭整数一小时,然后重启会话   仍然会很活跃。当新领导人出现时,时钟将“重置”   当选。如果客户端会话仍处于活动状态,则会话将继续,   任何短暂的znodes仍然存在。