第五周作业
用你熟悉的编程语言实现一致性 hash 算法。
编写测试用例测试这个算法,测试 100 万 KV 数据,10 个服务器节点的情况下,计算这些 KV 数据在服务器上分布数量的标准差,以评估算法的存储负载不均衡性。
Hash算法接口
FNV-1a hash算法实现,参考网上的位移部分修正
Hash环实现
多次测试结果250个虚拟节点最佳,我感觉hash算法的修正还是有点问题的
datacount:1000000 server:10 virtualNode:20 avgDiff:18804
datacount:1000000 server:10 virtualNode:40 avgDiff:9945
datacount:1000000 server:10 virtualNode:50 avgDiff:11548
datacount:1000000 server:10 virtualNode:80 avgDiff:7348
datacount:1000000 server:10 virtualNode:100 avgDiff:6231
datacount:1000000 server:10 virtualNode:150 avgDiff:4056
datacount:1000000 server:10 virtualNode:200 avgDiff:4864
datacount:1000000 server:10 virtualNode:250 avgDiff:3344
datacount:1000000 server:10 virtualNode:300 avgDiff:4167
评论