/region-allocation

分布式系统中三副本分布问题

Primary LanguageGoMIT LicenseMIT

分布式系统中3副本2DC放置策略

GoDoc Go Report Card

核心算法

    1. 将一个副本存放在本地Rack的任意节点(如果没有指定本地Rack,则随机选一个)
    1. 将一个副本放在与1相同DC不同Rack的节点上
    1. 将最后一个副本放置在与1,2不同DC的任意节点上

DC 、Rock 、Store节点的分布图

3副本检查及再分配策略

  • 流程图

  • 运行结果

go run main.go

先打印出从mock.json文件中获取的模拟数据(DC,Rack,Store的分布)

再打印出从0分配的3副本放置策略,然后随机生成一个序列,对该序列进行检查及调整

go test

输出更多测试结果,这里就不列出来了...