PHP如何实现一致性哈希算法来处理长尾词分布?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1501个文字,预计阅读时间需要7分钟。
目录+传统算法缺陷+算法思想+算法实现+总结+传统算法缺陷+对于服务器分片,我们要考虑的三个方面有:数据平均分布,查找定位准确,降低系统压力。+传统算法一般是将数据的键作为索引。
目录
- 传统算法缺陷
- 算法思想
- 算法实现
- 总结
传统算法缺陷
对于服务器分布,我们要考虑的东西有如下三点:数据平均分布,查找定位准确,降低宕机影响。
传统算法一般是将数据的键用算法映射出数字,对其用服务器数量取模,并根据结果选择要存储的服务器。其能达到数据平均分布和查找定位准确的要求,并且优点是算法简单,存取时的计算量都比较小(在数据非常大时才会明显)。
但其有一个致命缺点,即一个服务器宕机后的影响很大,我们可以推算一下一台服务器宕机后的影响:
- 原有数据大部分丢失:服务器数量减少一台,取模数减1导致取模值错乱,如果以前有N台服务器,那么宕机后数据只有1/(n*(n-1))的数据能够被准确查找到。
- 负载无法均衡导致集体宕机:如果没有及时处理宕机的服务器,那么他的存储任务将会被顺序积累给它的下一个服务器,那么下一个服务器也会很快被压致宕机,如此一来,服务器组很快会集体宕机。
本文共计1501个文字,预计阅读时间需要7分钟。
目录+传统算法缺陷+算法思想+算法实现+总结+传统算法缺陷+对于服务器分片,我们要考虑的三个方面有:数据平均分布,查找定位准确,降低系统压力。+传统算法一般是将数据的键作为索引。
目录
- 传统算法缺陷
- 算法思想
- 算法实现
- 总结
传统算法缺陷
对于服务器分布,我们要考虑的东西有如下三点:数据平均分布,查找定位准确,降低宕机影响。
传统算法一般是将数据的键用算法映射出数字,对其用服务器数量取模,并根据结果选择要存储的服务器。其能达到数据平均分布和查找定位准确的要求,并且优点是算法简单,存取时的计算量都比较小(在数据非常大时才会明显)。
但其有一个致命缺点,即一个服务器宕机后的影响很大,我们可以推算一下一台服务器宕机后的影响:
- 原有数据大部分丢失:服务器数量减少一台,取模数减1导致取模值错乱,如果以前有N台服务器,那么宕机后数据只有1/(n*(n-1))的数据能够被准确查找到。
- 负载无法均衡导致集体宕机:如果没有及时处理宕机的服务器,那么他的存储任务将会被顺序积累给它的下一个服务器,那么下一个服务器也会很快被压致宕机,如此一来,服务器组很快会集体宕机。

