分布式系统中的确定性与概率性共识算法解析
1. 确定性可实现任务概述
在分布式系统中,之前研究的共识问题要求每个进程都决定相同的值。而这里我们将探讨那些对进程间协调要求较低的任务的可解性。
分布式任务可以通过可能的输入值集合 (X)、输出值集合 (D) 以及一个(可能是部分的)映射 (T: X^N \to P(D^N)) 来描述。如果向量 (x = (x_1, \ldots, x_N)) 描述了进程的输入,那么 (T(x)) 就是算法的合法输出集合,用决策向量 (J = (d_1, \ldots, d_N)) 表示。
一个算法如果满足以下条件,就是任务 (T) 的 (t) - 崩溃鲁棒解:
1. 终止性 :在每一个 (t) - 崩溃公平执行中,所有正确的进程都能做出决策。
2. 一致性 :如果所有进程都是正确的,决策向量 (J) 属于 (T(x))。
下面是一些常见任务的示例:
| 任务名称 | 任务描述 | 输出集合 (D) |
| ---- | ---- | ---- |
| 共识 | 所有决策必须相等 | (D_{cons} = {(0, 0, \ldots, 0), (1, 1, \ldots, 1)}) |
| 选举 | 一个进程决定为 1,其他进程决定为 0 | (D_{elec} = {(1, 0, \ldots, 0), (0, 1, \ldots, 0), \ldots, (0, 0, \ldots, 1)}) |
| 近似一致 | 每个进程有一个实输入值,决定一个实输出值,任意两个输出值的最大差值