📜  MOSS 并发控制协议(数据库分布式锁)

📅  最后修改于: 2021-09-08 15:52:09             🧑  作者: Mango

这是一个用于控制分布式数据库环境中的并发的协议,这里我们将阅读应用MOSS并发控制协议时需要牢记的规则和规定。

MOSS 并发控制协议:-

a) 主要用于处理基于继承的嵌套(层级)事务。

b)考虑一个事务(T )在某种模式(M)中获取对数据项(X)的锁。

c)事务(T)在模式(M)中持有锁直到它终止。

d)T提交的任何人子事务(T 1),则它的父事务占用或继承锁定和保持,直到所有子事务不能完成。

e)如果一个事务持有一个数据项(X)的锁,那么它有权以相应的模式访问被锁定的数据项(X)。但是,如果事务保留了来自任何其他某些子事务(后代)的锁,则它无效。

f)保留锁只是一种占位符,表示超出相应层次的子事务不能获取锁,但后代可以获取锁。

g)一旦事务成为后代子事务 S 的锁的保留者,它就一直是保留者,直到事务完成。

关于本协议的一般锁定规则:-

a) 在以下情况下,子事务(T 1 )可以获得对数据项(X)的读锁:

a.1)没有其他子事务(后代)持有 X 上的写锁,并且

a.2)所有在 X 上保留写锁的子事务都是子事务(S)的祖先。

b) 子事务(T1)可以在数据项(X)上获取写锁,如果:

b.1)没有其他子事务持有X的读/写锁,并且

b.2)所有在 X保留读/写锁的子事务都是 T 1 的祖先。

c)子事务(T 1 )执行完毕, T 1的父事务继承(保留) T 1 持有的锁 与 T 1保持的模式相同。

图c

d)当顶级子事务 (T 3 )提交其所有后代的释放时,持有的锁以及保留的锁。

图d

e)子事务(T 3 )中止时,它会释放所有持有的锁以及保留的锁。源自中止事务的所有子事务也将被中止,并且如果它们已经开始执行,则必须从一开始就开始。

图e