时间戳如何导致"全局僵局"?

Aid*_*anc 8 database concurrency timestamp distributed-computing

我正在阅读在分布式数据库中使用时间戳进行并发控制的优点/缺点.我正在阅读的材料提到,虽然时间戳克服了可能影响锁定的传统死锁问题,但仍然存在易受"全局死锁"问题.

该材料将全局死锁描述为局部图的等待图中不存在循环但在全局图中存在循环的情况.

我想知道这会怎么样?有人可以描述时间戳系统可能导致此问题的情况吗?

I G*_*ERS 5

这是一个例子,可能是最简单的.我们有机器AB.机器A有锁T1T2关系T1 < T2.机器B拥有T3T4使用T3 > T4.

现在,本地图只是T2必须等待T1而T3必须等待T4.所以没有本地周期.但现在,假设我们有T4 < T1T1必须等待T4.同时T2 < T3T3必须等待T2.在这种情况下,全球存在一个周期.

那么这个循环是如何发生的呢?关键在于您从未在分布式系统中获得完整信息.所以我们稍后可能会了解到机器间的依赖关系.然后我们遇到了问题.