Paxos 算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。因此从20世纪80年代起对于一致性算法的研究就没有停止过。节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。Paxos 算法就是一种基于消息传递模型的一致性算法。
不仅仅是分布式系统中,凡是多个过程需要达成某种一致的场合都可以使用Paxos 算法。一致性算法可以通过共享内存(需要锁)或者消息传递实现,Paxos 算法采用的是后者。Paxos 算法适用的几种情况:一台机器中多个进程/线程达成数据一致;分布式文件系统或者分布式数据库中多客户端并发读写数据;分布式存储中多个副本响应读写请求的一致性。
虽然paxos使用范围广泛,但是paxos原理晦涩难懂,在工业几乎没有实现,大多是基于其变种,例如zookeeper、etcd(raft)等都是在paxos基础上的变化使得工业实现存在可能性,而且得到很好的应用,繁荣了paxos的生态。
目前开源zookeeper、etcd等都是基于paxos实现了分布式的集群管理系统,很多的主备、多地多中心的场景都是基于其做的集群管理。也希望我们的sig组能做出新的一个类似开源系统,给集群管理系统提供更多的可选择性。
oceanbase、tidb、cockroachdb等业界有名气的分布式数据库,都不约而同的使用paxos来进行集群之间的数据同步,以及集群管理。paxos在分布式系统在应用已经有很多的成熟实践以及证明。
建议opengauss社区建立paxos的sig,结识业界的paxos的专家,学习了解分布式一致性方向上的最新的业界动态,发展适合openGauss自己的paxos实践,给该领域提供新的一种实现。也同时聚集业内的paxos专家以及兴趣爱好者,给大家一个互相学习了解的平台, 提高openGauss在分布式界的名气。
希望opengauss的tc成员,可以综合考虑成立paxos sig建议,我个人之前有paxos很多的积累和实践,同时也很有兴趣和意愿去积极参与openGauss的paxos的sig组。

Best Regards,
        赵文浩