架构师训练营 第五周 作业
用你熟悉的编程语言实现一致性 hash 算法。
编写测试用例测试这个算法,测试 100 万 KV 数据,10 个服务器节点的情况下,计算这些 KV 数据在服务器上分布数量的标准差,以评估算法的存储负载不均衡性。
测试结果如下:
{10.0.0.5:80=326621, 10.0.0.1:80=49374, 10.0.0.10:80=2130, 10.0.0.8:80=64415, 10.0.0.3:80=155426, 10.0.0.2:80=127258, 10.0.0.9:80=123522, 10.0.0.4:80=921, 10.0.0.6:80=53350, 10.0.0.7:80=96983}
1个虚拟节点的标准差: 90075.0776830084
{10.0.0.5:80=115257, 10.0.0.1:80=171381, 10.0.0.10:80=87227, 10.0.0.8:80=52407, 10.0.0.3:80=105587, 10.0.0.2:80=110114, 10.0.0.9:80=68694, 10.0.0.4:80=74041, 10.0.0.6:80=89641, 10.0.0.7:80=125651}
10个虚拟节点的标准差: 32107.618958745603
{10.0.0.5:80=103440, 10.0.0.10:80=107766, 10.0.0.1:80=81795, 10.0.0.8:80=107464, 10.0.0.2:80=90577, 10.0.0.3:80=113026, 10.0.0.9:80=99807, 10.0.0.4:80=103692, 10.0.0.6:80=80738, 10.0.0.7:80=111695}
100个虚拟节点的标准差: 11131.994717929038
{10.0.0.5:80=100288, 10.0.0.10:80=97017, 10.0.0.1:80=101439, 10.0.0.8:80=102809, 10.0.0.3:80=96132, 10.0.0.2:80=100317, 10.0.0.9:80=100308, 10.0.0.4:80=104476, 10.0.0.7:80=97466, 10.0.0.6:80=99748}
1000个虚拟节点的标准差: 2462.0813958925078
{10.0.0.5:80=101560, 10.0.0.10:80=99464, 10.0.0.1:80=101221, 10.0.0.8:80=99891, 10.0.0.3:80=100201, 10.0.0.2:80=99912, 10.0.0.4:80=98405, 10.0.0.9:80=99259, 10.0.0.7:80=99851, 10.0.0.6:80=100236}
10000个虚拟节点的标准差: 862.7146689375346
评论