形式陈述
执行历史是按模型记录的事件序列,可包含操作调用与返回、进程内部步、消息发送与接收。并发对象历史常按每个线程投影保持程序顺序,并区分完整操作、挂起调用和实时先后。分布式系统还可能使用偏序执行而非单一全序;线性序列通常是某个调度下的交错表示。
直觉
历史是系统运行留下的可观察轨迹;性质不是只看最终状态,而是判断整条轨迹是否符合规格。
例子与边界
两个线程同时调用队列 enqueue 和 dequeue,历史记录各调用与返回时间。对挂起操作,线性一致性判断可选择补全或删除,具体按定义。日志时间戳不一定等于因果顺序,机器时钟漂移也不自动给出合法全序。
推论与应用
执行历史用于定义线性一致性、可串行化、安全/活性、故障模型和并发测试。
参考资料
- 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。