“一致性哈希即Consistent Hashing” 和 “libconhash” 的学习感悟

最近学习了一致性哈希算法及其在分布式中的应用,并且自己读取了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。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保

没有一条路径会比其他路径长出俩倍,因而是接近平衡的。

      在添加或者删除红黑树中的节点时又是通过红黑树的五条原则来尽可能的维护红黑树的平衡。继而达到节点的均匀分布,实现平衡。   



       


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值