文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>需要使用一致性哈希吗?

需要使用一致性哈希吗?

时间:2010-09-06  来源:Aquester

在普通的哈希中,如果节点个数(分母)发生变化,原先的次序会被完全打乱重来,一致性哈希解决了这个问题。实际可看成普通的哈希对着的是物理节点,而一致性哈希对着的是虚拟节点,这里可以拿物理内存和虚拟内存来对比,虚拟节点是可认为是使用不完的,挂了一个节点,还可以认为节点数不变,因此哈希的对应关系仍保持不变,也就不存在普通哈希的问题了。

没有深入的了解一致性哈希,但我认为一般的集群系统使用一致性哈希并非最优的选择。在一些系统中,我采取了另一种更傻瓜式的办法,基本不涉及到算法二字。仍然将物理节点看成取之不尽的虚拟节点,仍哈希成若干份(比物理节点数大百倍,甚至万倍,每一份可以看成原子不可再分隔的),可以将每一份看成为一个麻将子,最复杂的算法就是已知节点数的情况下,如何去均衡的分配这些麻将子,而同时又尽可能的减少数据映射关系的变化,要做到这一点非常容易,只需要维护一个分配表即可,这里有一个前提:需要一个集中的改变分配关系的节点。

实际即使使用一致性哈希,也需要一个集中的改变分配关系的节点,因为某个节点自作主张选择的下一节点,也许并非可靠的,因为也许刚好它们之间的网络是通的,但和其它一些可能并不通,因此仍需要一个仲裁节点来发布指令。

从上面的理解来看,使用一致性哈希并不是最简单的均衡和容灾策略。什么情况下必须一致性哈希了?

讨论:http://bbs.hadoopor.com/thread-1841-1-1.html
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载