[架构师训练营第 1 期] 第五周命题作业
题目
用你熟悉的编程语言实现一致性 hash 算法。
编写测试用例测试这个算法,测试 100 万 KV 数据在 10 个服务器节点的情况下,数据在服务器上分布数量的标准差,以评估算法的存储负载不均衡性。
成果
第一题
使用 JavaScript 编程语言实现一致性 hash 算法代码如下:
consistent_hasing_II
第二题
编写测试用例代码如下:
测试用例主体:
test
辅助函数之模拟数据生成函数
mock
辅助函数之统计函数
statistics
运行测试用例结果如下:
output
结论:标准差不如预期,当虚拟节点倍数 = 1 时,标准差反而比没有虚拟节点时大,说明虚拟节点的生成算法不够合理,需要改进。虽然轻微异常可以接受,但是正常情况应该是虚拟节点越多,标准差越小,反映了数据分布在各个服务器上越均衡。(想象一下,所有服务器的数据数量都相等,则标准差为零)
版权声明: 本文为 InfoQ 作者【猫切切切切切】的原创文章。
原文链接:【http://xie.infoq.cn/article/dcd45cb5cc74e01625d00073b】。文章转载请联系作者。
评论