2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
架构师解析:法定人数灾难恢复、脑裂、租约——以及为何“等待备机”不等同于“容忍少数派故障”。
Paxos 算法在说什么——以及为何它至关重要?
如果你从未接触过分布式系统理论,Paxos 听起来可能像是计算机科学系内部的一个玩笑。一个有用的思维模型是:满屋子的人试图就单一结果达成一致——只不过有些人迟到、掉线或自相矛盾。系统仍然必须产生一个单一的决策,且该决策后续不会瓦解。这正是分布式共识旨在解决的问题。由图灵奖得主莱斯利·兰波特提出的 Paxos 协议族是一个经典答案:除非多数参与者已接受某个结果,否则该结果并非最终确定。
为何需要多数派?因为数学逻辑很清晰:如果每个决策都需要多数派同意,那么任意两个多数派必然至少共享一名成员。你不可能永远陷入“集群的一半认为 A 成立”而“另一半认为 B 成立”的局面——这种情况在数据库中被称为“脑裂”,即两个节点都认为自己是可写入的主节点,并欣然接受相互冲突的写入操作。
核心要点:Paxos 并非盲目的乐观主义。它是一条规则,用于将混乱的部分故障转化为关于已发生事件的单一持久化记录。
OceanBase 将这一理念应用于数据持久性。数据在多个称为副本的拷贝间进行复制。每次数据库变更首先会成为重做日志或提交日志条目。在事务向客户端返回“提交成功”之前,这些条目必须在多数副本(包括主副本)上持久化记录。因此,如果单台机器丢失磁盘——甚至托管主副本的机器宕机——只要多数副本仍然可达,你的变更就已经被投票通过并持久化存储在多台机器上。这就是 OceanBase 在许多容灾架构中能够实现恢复点目标等于零的工程原因:可靠性不在于“某一台机器很特殊”,而在于“法定人数才是事实来源”。
恢复点目标:故障后允许的最大数据丢失量——在此处,设计目标是在涵盖的故障模式下实现已提交数据零丢失。
有一点澄清很重要:副本并非作为独立的 Paxos 实例对“每一微小的行变更”进行投票。在 OceanBase 中,共识运作于日志流层。日志流是一种内部抽象概念,它合并了多个分区(数据分片)的有序日志记录。将许多分区更新批处理到一个有序流中,使得单次多 Paxos 交互能够同时同步多个分区——从而减少网络通信开销,提高端到端效率。
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

