“一致性哈希即Consistent Hashing” 和 “libconhash” 的学习感悟
来源:互联网 发布:labview软件 编辑:程序博客网 时间:2024/06/13 20:23
http://m.blog.csdn.net/blog/guoqiangi1/8695284
最近学习了一致性哈希算法及其在分布式中的应用,并且自己读取了libconhash的C语言版实现的源码。对一致性哈希和分布式中的均衡颇有些感悟。
记下:
libconhash下载地址:http://sourceforge.net/projects/libconhash/?source=directory
红黑树算法:http://zh.wikipedia.org/wiki/%E7%BA%A2%E9%BB%91%E6%A0%91
参考一致性哈希算法博文:http://blog.codinglabs.org/articles/consistent-hashing.html 在该文中详细介绍了一致性哈希算法在分布式中的应用。
博文中主要两大部分,一是容错性和可拓展性的分析;二是虚拟节点。
虽然博文中对一致性哈希中说明了增加虚拟节点,这样就解决了服务节点少时数据倾斜的问题。在实际应用中,通常将虚拟节点数设置为32甚至更大,因此即使很少的服务节
点也能做到相对均匀的数据分布。但是文中并没有给出这些虚拟节点究竟如何的分布来达到更加合理的均匀分布,自己详细阅读了libconhash中c语言版的实现。对于大量的虚拟
节点的分布问题,是采用数据结构中的红黑树的原理实现。
红黑树是一种二叉查找树,在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保
没有一条路径会比其他路径长出俩倍,因而是接近平衡的。
在添加或者删除红黑树中的节点时又是通过红黑树的五条原则来尽可能的维护红黑树的平衡。继而达到节点的均匀分布,实现平衡。
- “一致性哈希即Consistent Hashing” 和 “libconhash” 的学习感悟
- “一致性哈希即Consistent Hashing” 和 “libconhash” 的学习感悟
- Consistent Hashing一致性哈希库libconhash的使用与实现
- Memcache的一致性 Hash 算法(Consistent hashing)
- Consistent Hashing 一致性hash
- consistent hashing(一致性hash)
- Cassandra的一致性哈希(Consistent Hashing)和虚拟节点(Virtual Nodes)的关系
- 一致性hash算法 - consistent hashing
- 一致性hash算法 - consistent hashing
- 一致性hash算法 - consistent hashing
- 一致性哈希(Consistent Hashing)
- 一致性哈希(Consistent Hashing)
- 一致性hash算法 - consistent hashing
- 一致性hash算法(consistent hashing)
- 一致性hash算法 - consistent hashing
- 一致性hash算法 - consistent hashing
- 一致性hash算法 - consistent hashing
- 一致性hash算法 - consistent hashing
- 设置背景的圆角,边框
- maven pom.xml文件详解
- IOS 菊花弹窗提示
- 献给初学者:谈谈如何学习Linux操作系统
- 扫描指定的包中的类上的注解,常用的注解有:
- “一致性哈希即Consistent Hashing” 和 “libconhash” 的学习感悟
- 带你3步快速掌握iSCSI搭建
- IDEA中的单工程多模块(基于maven)
- 【LeetCode】190Reverse Bits
- 【QT学习】对话类QDialog
- Spring注解
- has leaked window com.android.internal.policy.impl.PhoneWindow解决(Dialog.cancel、dismiss、hide区别)
- AsyncTask和Handler的优缺点比较
- C# 快速创建线程