博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CAS(Compare and Swap) 理论在zookeeper中version上的演化
阅读量:6160 次
发布时间:2019-06-21

本文共 457 字,大约阅读时间需要 1 分钟。

hot3.png

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

 

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

 

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

转载于:https://my.oschina.net/iioschina/blog/852626

你可能感兴趣的文章
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
深入python的set和dict
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
centos 下安装g++
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>