Skip to content

网络分区

Network partition

通信链路故障使进程网络分裂为暂时无法互达的多个连通部分。

形式陈述

网络分区是通信故障使进程集合在一段时间内分成无法相互传递消息的部分。对异步系统,有限但未知的长延迟与分区在观察上可能不可区分;分区是否最终愈合、是否单向、是否丢包由模型决定。进程本身可能仍运行,因此分区不同于节点崩溃。

直觉

系统被切成多个仍各自工作的“岛”,每个岛无法及时知道另一侧发生了什么。

例子与边界

跨机房链路中断时两侧节点均可服务本地请求,却不能同步。单个消息超时不能证明永久分区。脑裂是多个分区同时认为自己拥有主权的协议后果,不是分区定义本身。

推论与应用

网络分区是 CAP、quorum、租约、冲突合并和灾备设计的核心故障场景。

参考资料
  • Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 1–25。
  • Tushar D. Chandra and Sam Toueg, “Unreliable Failure Detectors for Reliable Distributed Systems,” Journal of the ACM 43(2), 1996,Full paper。