【发布时间】:2015-04-28 08:11:51
【问题描述】:
我正在尝试在分布式系统上实现 Ricart–Agrawala 算法以实现互斥。据我了解,它使用逻辑时间戳http://blog.8thlight.com/rylan-dirksen/2013/10/04/synchronization-in-a-distributed-system.html 对事件进行排序。
但是假设分布式系统中有10个节点。 Node-2 和 Node-5 的逻辑计数器值等于 3。现在,如果它们都尝试向对方发送进入临界区的请求,则会收到具有相同逻辑时间戳值 3 的请求消息。现在 Node- 2 有自己的请求和来自 Node-5 的请求,具有相同的时间戳。这与 Node-5 相同。
在这种情况下,Node-5 和 Node-2 将永远不会相互响应,因为它们正在等待对方的响应。所以出现了僵局。在算法中如何避免这种情况。
如果我的理解不正确,请纠正我。
【问题讨论】:
标签: synchronization mutex clock distributed-computing mutual-exclusion