[架构师训练营第 1 期] 第五周命题作业

用户头像
猫切切切切切
关注
发布于: 2020 年 10 月 25 日

题目

  1. 用你熟悉的编程语言实现一致性 hash 算法。

  2. 编写测试用例测试这个算法,测试 100 万 KV 数据在 10 个服务器节点的情况下,数据在服务器上分布数量的标准差,以评估算法的存储负载不均衡性。

成果

第一题

使用 JavaScript 编程语言实现一致性 hash 算法代码如下:

consistent_hasing_II

第二题

编写测试用例代码如下:

  • 测试用例主体:

test



  • 辅助函数之模拟数据生成函数

mock
  • 辅助函数之统计函数

statistics

运行测试用例结果如下:

output

结论:标准差不如预期,当虚拟节点倍数 = 1 时,标准差反而比没有虚拟节点时大,说明虚拟节点的生成算法不够合理,需要改进。虽然轻微异常可以接受,但是正常情况应该是虚拟节点越多,标准差越小,反映了数据分布在各个服务器上越均衡。(想象一下,所有服务器的数据数量都相等,则标准差为零)

发布于: 2020 年 10 月 25 日 阅读数: 30
用户头像

猫切切切切切

关注

还未添加个人签名 2018.03.26 加入

还未添加个人简介

评论

发布
暂无评论
[架构师训练营第 1 期] 第五周命题作业