前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >需要使用一致性哈希吗?

需要使用一致性哈希吗?

作者头像
一见
发布2018-08-07 15:59:40
3410
发布2018-08-07 15:59:40
举报
文章被收录于专栏:蓝天

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

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

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

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

讨论:http://bbs.hadoopor.com/thread-1841-1-1.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2010/09/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档