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

zookeeper源码分析-server-util

时间:2017-06-14 02:41:51      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:family   ati   leader   字符   16进制   util   通过   action   ons   

zxid (ZooKeeper Transaction Id,每次请求对应一个唯一的zxid,如果zxid a < zxid b ,则可以保证a一定发生在b之前)

zookeeper采用了递增的事务id号(zxid)来标识事务。所有的提议(proposal)都在被提出的时候加上了zxid。

实现中zxid是一个64位的数字,它高32位是epoch用来标识leader关系是否改变,每次一个leader被选出来,它都会有一个新的epoch,标识当前属于那个leader的统治时期。低32位用于递增计数。

ZXID高32位代表epoch(表示纪元或时代),低32位表示counter(表示递增计数)

ZxidUtils.java:(ZXID工具集)

getEpochFromZxid获取epoch,getCounterFromZxid获取递增计数,makeZxid通过epoch和counter进行移位组合,zxidToString把zxid转换成16进制字符串。

 


 

zookeeper源码分析-server-util

标签:family   ati   leader   字符   16进制   util   通过   action   ons   

原文地址:http://www.cnblogs.com/wangtale/p/7004416.html

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