文档章节

CAS(Compare and Swap) 理论在zookeeper中version上的演化

writeademo
 writeademo
发布于 2017/03/06 14:20
字数 315
阅读 808
收藏 0

CAS(Compare and Swap) 理论相关知识,在现代绝大多数的计算机处理器体系架构中,都实现了对CAS的指令支持,CAS的意思就是:对于值V,每次更新前都会比对其值是否是预期值A,只有符合预期,才会将V原子化地更新到新值B,

 

zookeeper中的setData接口中的version参数正是由CAS原理演化而来的。

 

zookeeper中每个节点都有数据版本的概念,在调用更新操作的时候 ,就可以添加version这个参数,这个参数可以对应于CAS原理中的”预期值”,表明是针对该数据版本进行的更新的。具体来说,加入一个客户端试图更新,它会携带上次获取到的version值进行更新。而如果这段时间内,zookeeper服务器上该节点的数据恰好已经被其他客户端更新了,那么其数据版本一定也发生了变化,因此肯定与客户端携带的version无法匹配,于是就无法更新成功,因此有效地避免了一些分布式更新的并发问题

© 著作权归作者所有

writeademo
粉丝 27
博文 681
码字总数 256388
作品 0
东城
私信 提问
ZooKeeper技术内幕-系统模型

系统模型 数据模型 ZooKeeper视图机构和标准Unix 文件系统非常相似,使用了数据节点(ZNode) ZNode是ZooKeeper数据的最小单元 ZNode可以挂在子节点,保存数据信息 ZNode层次化,树结构存储 ...

Java搬砖工程师
2018/11/20
41
0
zkCli.sh命令行常用命令

zookeeper提供了客户端zkCli.sh脚本(window版本为zkCli.cmd) 通过zkCli.sh连接zookeeper服务 连接本机zookeeper服务,执行: 连接远程zookeeper服务,跟上参数: 在命令行输入:help 查看命令...

燃犀
03/08
835
0
Shepher — 小米配置管理中心的 ZooKeeper 管理工具

Shepher 是一款 ZooKeeper 的管理工具。在小米公司,用它作为配置管理中心。具有以下特性:ZooKeeper 节点的可视化操作、ZooKeeper 节点的快照管理、ZooKeeper 节点修改的 Diff 和 Review 功...

局长
2018/05/20
66
0
ZooKeeper 的管理工具 - Shepher

Shepher 是一款 ZooKeeper 的管理工具。在小米公司,我们用它作为配置管理中心。Readme in English 特性 ZooKeeper 节点的可视化操作 ZooKeeper 节点的快照管理 ZooKeeper 节点修改的 Diff 和...

梦回唐朝302
2018/05/18
8.9K
7
Thrift RPC实战(七) 基于zookeeper和thrift的RPC服务发布订阅

对于Thrift服务化的改造,主要是客户端,可以从如下几个方面进行: 1.服务端的服务注册,客户端自动发现,无需手工修改配置,这里我们使用zookeeper,但由于zookeeper本身提供的客户端使用较...

lemonLove
2018/06/26
241
0

没有更多内容

加载失败,请刷新页面

加载更多

JIT编程与方法内联

JIT的比较冷门,首先你要读一下这两篇 帖子: 《面向JIT编程-方法内联》 https://blog.csdn.net/u012834750/article/details/79488572 《浅谈对JIT编译器的理解》 https://www.cnblogs.com/...

爱吃窝窝头
3分钟前
1
0
基于TCP的RPC实现

RPC即远程服务调用 出现原因:随着项目越来越大,访问量越来越大,为了突破性能瓶颈,需要将项目拆分成多个部分,这样比起传统的项目都是本地内存调用,分布式的项目之间需要在网络间进行通信...

少年已不再年少
13分钟前
3
0
OSChina 周二乱弹 —— 他只能用这个办法劝你注意身体了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# Kodaline《High Hopes》 《High Hopes》- Kodaline 手机党少年们想听歌,请使劲儿戳(这里) @xiaoshiyue :仙女...

小小编辑
34分钟前
856
17
Spring Boot Actuator 整合 Prometheus

简介 Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等。这一节结合 Prometheus 、Grafana 来更加直观...

程序员果果
43分钟前
11
0
Linux文件查找命令详解

对于文件查找,我们最好用的还是属于find命令了,在说find命令之前,先把另外几个查找命令介绍一下。 目录 0x01 查询命令介绍 0x02 find命令介绍 0x01 查询命令介绍 在介绍之前,首先先了解一...

无心的梦呓
43分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部