关于paxos:MultiMasterPaxos3
Background200 行代码实现 paxos-kv 中介绍了一款十分简洁的分布式 kv 存储实现,它是基于 classic-paxos 实现分布式一致性。在 paxos 的直观解释 中咱们提到,每次写入,也就是每个 paxos 实例须要 2 轮 RPC 实现,效率低。 一个常见的优化就是 mutli-paxos(或 raft),用一次 RPC 对多个实例运行 phase-1;再对每个实例别离运行 phase-2,这样均摊开销是一次 RPC 实现一次写入。 它通过 phase-1 在集群中确定了一个惟一可写的 leader。这种设计在跨机房(或跨云)部署的环境中的缺点是:异地机房的写入就须要 2 个 RTT 能力实现: client → leader → followers → leader → client 也就是说它无奈做到异地多活,在 3 节点的场景里,有 2/3 的写入效率升高到 2 个 RTT。 本文从另一角度登程来解决异地多活的问题,3 机房部署的 3 正本集群中: 任一节点都可写,任一笔写入都能够严格在 1 个 RTT 内实现。这就是明天要介绍的 200 行代码实现 paxos-kv 的改进版: mmp-3: multi-master-paxos 3 正本实现。 同样 show me the code 的准则不能变:本文实现的 3 节点多活代码在: mmp3 异地多活是目前分布式畛域越来越被器重的一个问题,机房正在变成单机,单机房多机分布式在当初大规模部署的业务中曾经满足不了业务的可用性需要了。 简直所有线上环境部署的分布式存储, 都须要跨机房(或者跨云)的部署。而大家也踊跃在解决这些问题: ...