关于数据库意向锁与封锁粒度若干问
我们所说的加锁是谁对谁加锁? 是事务T对某个封锁对象加锁。封锁对象的大小被称为封锁的粒度,这个对象可以是数据库、关系,也可以是元组。 为什么要引入多粒度锁协议? 封锁粒度大,系统被封锁的对象越少,并发度越小,系统开销越小。 封锁粒度越小,系统被封锁的对象越多,并发度高,系统开销大。 必须要在系统开销和并发度进行权衡,以求得最佳效果。所以,要引入支持多种并发控制粒度的并发协议,多粒度锁协议。 为什么会有显式封锁和隐式封锁? 多粒度树中的每个结点都可以被独立的加锁,对这种结点的封锁被称为显式封锁,对一个结点加锁意味着这个结点的所有后裔结点也被加了同样类型的锁,这些后裔结点的封锁方式就是隐式封锁。
下载地址
用户评论