分布式计算中的执行、状态与全局状态
分布式计算是当今计算机科学领域的重要研究方向,它涉及多个进程在不同节点上协同工作。本文将深入探讨分布式执行、局部状态、全局状态以及它们之间的关系,帮助大家更好地理解分布式计算的本质。
1. 分布式执行是局部事件的偏序关系
在分布式系统中,分布式执行可以看作是局部事件的偏序关系。这里引入了“割”和“一致割”的概念。
- 割(Cut) :割 C 是一组事件,这些事件定义了进程历史的初始前缀。可以用向量 [prefix(h1), …, prefix(hn)] 来表示,其中 prefix(hi) 是进程 pi 对应的前缀。例如,C = {e21, e12, e32, e13} 不是一个割,因为进程 p1 中唯一的事件 e21 不是 p1 历史的前缀,初始前缀还应包含 e11,因为 e11 在 e21 之前产生。
- 一致割(Consistent Cut) :一致割 C 是满足条件 ∀e ∈ C: f ev−→e ⇒ f ∈ C 的割。例如,C = {e11, e21, e12, e22, e13, e23} 是一个割,但不是一致割,因为 e32 ∉ C,e23 ∈ C,且 e32 ev−→e23;而割 C′ = C ∪ {e32} 是一致割。
在异步分布式执行中,其定义不涉及物理时间。只要不考虑实时分布式程序,这种定义就有意义。物理时间是执行分布式程序所需的资源,但不是进程可访问的编程对象,只有外部的全知观察者才能知道物理时间。这意味着,具有相同事件集和相同事件偏序关系的分布式执行集,无论事件产生的物理时间如何,都是相同
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



