zk的数据模型 &数据同步原理

zk的数据模型是一种树形结构,具有固定的根节点(/),可以在根节点下创建子节点,并且可以在子节点下面继续创建下一层节点;

节点类型

  1. 持久节点
  2. 临时节点
  3. 有序节点

节点内容:一个二进制数组byte[],用来存储节点数据,ACL访问控制,子节点数据,记录自身的状态信息的stat;
stat + 节点路径信心 可以查看状态信息
czxid:创建节点的事务id;
mzxid:最后一次更新的事务id
pzxid:子节点最后一次修改的事务id
version:版本号,可以避免并发更新的问题

cversion:子版本号
ephemeralOwerner:创建节点时的sessionId,如果是持久化节点,值为0

数据同步原理

类似于与滑动窗口,leader服务器维护一个同步窗口,在这个窗口中的事务id,是需要记性数据同步的,(minCommittedLog,maxCommitedLog)
follower服务器维护一个成功同步指针peerLastZxid;

同步方式:
1.DIFF 直接差异化同步

peerLastZxid 在 (minCommittedLog,maxCommitedLog)之间
2.TRUNC + DIFF 先回滚在差异化同步
Leader服务器发现follower服务器存在一条不存在的日志记录,
follower先回滚,在进行同步

3.TRUNC 仅回滚同步
peerLaxt大于maxCommitedLog,

4.SNAP:全量同步
peerLaxt 小于minCommittedLog

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值