| 阶段 | 询问 → 预提交 → 提交 |
|---|---|
| 改进 | 参与者不再无限阻塞,超时可按规则决定 |
| 局限 | 对网络分区与时钟假设敏感,工程中使用较少 |
与 2PC 的对比
| 维度 | 2PC | 3PC |
|---|---|---|
| 阶段数 | 准备、提交 | 询问、预提交、提交 |
| 阻塞风险 | 参与者可能长期等待 | 超时可推断,降低阻塞 |
| 假设前提 | 无特殊网络假设 | 同步网络、无分区 |
| 工程采用 | 广泛 | 有限 |
理解 3PC 的价值在于认识 2PC 的阻塞来源,而非鼓励在生产中替换 2PC。
在 2PC 的准备与提交之间增加预提交阶段,参与者可在超时后自行推断结果,降低阻塞概率;其正确性依赖同步网络与无分区假设,实际使用有限。
| 阶段 | 询问 → 预提交 → 提交 |
|---|---|
| 改进 | 参与者不再无限阻塞,超时可按规则决定 |
| 局限 | 对网络分区与时钟假设敏感,工程中使用较少 |
| 维度 | 2PC | 3PC |
|---|---|---|
| 阶段数 | 准备、提交 | 询问、预提交、提交 |
| 阻塞风险 | 参与者可能长期等待 | 超时可推断,降低阻塞 |
| 假设前提 | 无特殊网络假设 | 同步网络、无分区 |
| 工程采用 | 广泛 | 有限 |