这是一个用于控制分布式数据库环境中的并发的协议,这里我们将阅读应用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保持的模式相同。
d)当顶级子事务 (T 3 )提交其所有后代的释放时,持有的锁以及保留的锁。
e)当子事务(T 3 )中止时,它会释放所有持有的锁以及保留的锁。源自中止事务的所有子事务也将被中止,并且如果它们已经开始执行,则必须从一开始就开始。