Skip to content

分布式配置

Distributed configuration · Global configuration

全部进程局部状态与通信介质状态组成的系统全局状态。

条目类型
定义

形式陈述

设系统由进程 p1,,pn 与通信介质组成,进程 pi 是局部状态取自集合 Qi状态机。一个分布式配置(全局配置)是某一时刻系统的完整快照

C=(s1,,sn,M),

其中 siQipi 的局部状态,M 记录通信介质的状态——在消息传递系统中,它按信道语义记录各信道里的在途消息:无序信道可用多重集,FIFO 信道则须保留为序列;在共享内存模型中,M 是共享对象的取值。配置空间因此是各局部状态空间的笛卡尔积再乘上介质状态空间的子集。算法的一步把配置 C 按某个在 C 中可用的事件 e(交付某消息、某进程做内部步等)转移到后继配置 C;初始配置集合与这一转移关系共同定义系统的状态空间,一次执行就是配置图中的一条路径。异步模型中的配置是数学快照,不要求任何观察者能在现实中瞬时读取全局状态。

直觉

分布式系统的定义性约束是"没有进程看得见全局",而分析者恰恰要跳出这个限制:把所有局部状态与在途消息拼成一个假想的全局节点,系统的一切可能演化就变成一张图上的可达性问题。这是标准的"上帝视角"手法——它不违反模型,因为配置只服务于证明,不供协议读取。有了配置图,串行程序验证的全套武器立即可用:不变量归纳(每步转移保持某性质)、可达集分析、按图搜索反例。同样重要的是配置给"进程的无知"提供了精确语言:若两个配置在进程 p 的局部状态(及其可见事件)上一致,p 就无法区分它们,必须做出相同动作——不可区分性论证是几乎所有不可能性证明的杠杆。

例子与边界

正例:两个进程打乒乓的计数协议,p1 发出"计数 3"后消息尚未到达 p2。此刻配置为 (s1,s2,{“3”})——消息不属于任何进程的局部状态,而挂在信道分量里。比较两个局部状态完全相同、仅在途消息不同的配置:一个信道里有"3"、另一个信道为空。前者交付消息后 p2 会继续推进,后者则可能永远等待——未来行为截然不同。这说明"局部状态之积"并不足以刻画全局状态,介质分量是配置定义里不可省略的部分。

边界在于"什么必须计入配置"取决于模型的完备性要求:崩溃标志、定时器读数、尚未使用的随机币、稳定存储内容——凡是会影响后续转移的信息都得纳入,否则"当前配置决定可能的下一步"这一状态机式描述被破坏,基于配置的归纳与 Markov 式论证随之失效。典型错误是在带随机化的协议里漏掉硬币状态,或在 crash-recovery 模型里漏掉稳定存储,得到的"状态空间"无法重现真实执行集合。

推论与应用

配置是分布式算法证明的通用底座。安全性证明写成“所有从初始配置可达的配置都满足不变量”;把配置和一步事件组成标号转移系统后,显式状态模型检查才在其有穷化图上搜索违例。前者定义语义对象,后者是探索它的算法,状态哈希或约简不能反过来省略会影响未来行为的配置分量。自稳定理论则把“任意配置出发最终回到合法配置集”作为定义本身。最著名的应用是FLP 不可能性:其论证完全生活在配置空间里——把配置按可能的决定值分为二价与单价,再证明对手调度能让系统永远停留在二价配置中。

一致切片从每个进程取一个因果向下闭合的事件前缀,由各前缀末端局部状态和跨边界在途消息组成一个全局配置。它不要求这些局部状态在同一物理时刻真实并列;Chandy–Lamport 快照则是在特定通道假设下构造这种配置的算法。配置也搭配分布式执行可容许执行使用:执行交替记录事件与配置,二者共同给出状态变化及其原因。

参考资料
  • Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 1–25。
  • Hagit Attiya and Jennifer Welch, Distributed Computing: Fundamentals, Simulations, and Advanced Topics, 2nd ed., Wiley, 2004,Chs. 1–18。
关系图谱13 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组