Cassandra学习笔记之一致性hash回顾
来源:互联网 发布:你为什么选择淘宝客服 编辑:程序博客网 时间:2024/09/21 09:26
每个节点都有一个哈希值,将这个哈希值配置到圆环上(0到2的32次方),相当于这个圆环分配给了这些节点,每个节点负责一段。数据根据同样的哈希函数也得到一个哈希值,这个哈希值落到哪一段,就表示这个节点存储在这段对应的节点上。
每添加或者移除一个新的节点,只有相邻的那个节点会受到影响,因此,一致性哈希解决了节点变化引起的数据重新分布问题。
Cassandra1.2以前采用的是这种标准的一致性哈希算法:为每个节点分配一个token,根据这个token值来决定节点在集群中的位置以及这个节点所存储的数据范围。
由于这种方式会造成数据分布不均的问题,在Cassandra1.2以后采用了虚拟节点的思想:不需要为每个节点分配token,把圆环分成更多部分,让每个节点负责多个部分的数据,这样一个节点移除后,它所负责的多个token会托管给多个节点处理,这种思想解决了数据分布不均的问题。
如图所示,上面部分是标准一致性哈希,每个节点负责圆环中连续的一段,如果Node2突然down掉,Node2负责的数据托管给Node1,即Node1负责EFAB四段,如果Node1里面有很多热点用户产生的数据导致Node1已经有点撑不住了,恰巧B也是热点用户产生的数据,这样一来Node1可能会追随Node2而去,Node1去了,Node6还hold住吗?
下面部分是虚拟节点实现,每个节点不再负责连续部分,且圆环被分为更多的部分。如果Node2突然down掉,Node2负责的数据不全是托管给Node1,而是托管给多个节点。而且也保持了一致性哈希的特点。
0 0
- Cassandra学习笔记之一致性hash回顾
- Cassandra源码学习:一致性hash回顾
- Cassandra学习笔记之数据模型
- 一致性hash算法学习
- 一致性 Hash 算法学习
- 一致性Hash算法学习
- Cassandra学习笔记之Gossip协议
- Cassandra学习笔记之机架感应策略
- Cassandra学习笔记之数据文件分布
- Cassandra学习笔记之数据更新
- Cassandra学习笔记之数据读取
- Cassandra学习笔记之Gossip协议
- Memcache学习笔记(6)- memcache分布式算法 - 一致性hash
- 走进cassandra之七:最终一致性
- 走进cassandra之七:最终一致性
- cassandra 学习笔记
- cassandra学习笔记一
- cassandra学习笔记二
- 解读plugin.xml
- NetBean 字体美化 Source Code Pro
- 编译libevent遇到的问题
- 开始学习Java
- 设置对话框大小和位置
- Cassandra学习笔记之一致性hash回顾
- 第四章 文本输出(1.文本显示)
- C语言实现异常处理
- Flash Builder 开发视频播放器客户端(myhslider)
- centos 安装autopy报错
- 【二叉树的后续遍历】Binary Tree Postorder Traversal
- Android RadioGroup 换行, 支持多行多列
- android实现alpha渐变动画效果
- genymotion- 快速的android模拟器