5.07 Multiple Granularity Locking 多粒度封锁
1 5.07 Multiple Granularity Locking 多粒度封锁
问题的提出:加锁于数据对象, 封锁范围多大?可以: ·整个数据库 。一个区域 一个关系(文件) ·一个元组 一个元组中的某些属性 太细,锁太多 太粗,大面积封锁数据,系统效率太低
2 问题的提出: 加锁于数据对象, 封锁范围多大?可以: ⚫ 整个数据库 ⚫ 一个区域 ⚫ 一个关系(文件) ⚫ 一个元组 ⚫ 一个元组中的某些属性 太细,锁太多; 太粗,大面积封锁数据,系统效率太低
Multiple granularity Locking 多粒度封锁:实际的应用需要 大片封锁,如生成工资发放表, 有时只需封锁个别数据,如查询 某学生的成绩。提供多种粒度的封锁单位,可兼 顾提高并发度和减少锁的数量。叫多粒度封锁。 Single granularity locking 单粒度封锁:用于微机,DBMS不要求高并发 度,以关系为封锁单位
3 ⚫ Multiple granularity Locking 多粒度封锁:实际的应用需要 大片封锁,如生成工资发放表, 有时只需封锁个别数据,如查询 某学生的成绩。提供多种粒度的封锁单位,可兼 顾提高并发度和减少锁的数量。叫多粒度封锁。 ⚫ Single granularity locking 单粒度封锁:用于微机,DBMS不要求高并发 度,以关系为封锁单位
o Explicit locking 显式封锁 ●Implicit locking 隐式封锁 多粒度风锁中,一个数据对象可有两种封锁 方式:显式封锁和隐式封锁。 隐式封锁:上级数据对象被封锁,本级对 象则被隐式封锁。 如关系被封锁,则它的所有元组均被隐式 封锁
4 ⚫ Explicit locking 显式封锁 ⚫ Implicit locking 隐式封锁 多粒度风锁中,一个数据对象可有两种封锁 方式:显式封锁和隐式封锁。 隐式封锁:上级数据对象被封锁,本级对 象则被隐式封锁。 如关系被封锁,则它的所有元组均被隐式 封锁
多粒度封锁,有隐式锁, 检查锁冲突的复杂性,需: ·查上级: 防与上级的隐式锁矛盾。 ·查下级: 防与下级的显式锁矛盾。 intent locking意向锁:为简化上述加锁检 查的复杂性。system-一R中提出。 介绍三种意向锁:
5 多粒度封锁,有隐式锁, 检查锁冲突的复杂性,需: ⚫ 查上级: 防与上级的隐式锁矛盾。 ⚫ 查下级: 防与下级的显式锁矛盾。 intent locking 意向锁:为简化上述加锁检 查的复杂性。system—R中提出。 介绍三种意向锁:
l、IS锁-intent share lock 意向公享锁: 加IS锁,是因其子孙加了S锁。作用。 2、X锁 intent exclusive lock 意向排他锁: 加X锁,是因其子孙加了X锁。作用。 3、SIX锁—SIX=S+IX 数据加SIX,相当加了S锁,再加上X锁
6 1、 IS 锁——intent share lock 意向公享锁: 加IS锁,是因其子孙加了S锁。作用。 2、IX锁——intent exclusive lock 意向排他锁: 加IX锁,是因其子孙加了X锁。作用。 3、SIX锁——SIX = S + IX 数据加SIX ,相当加了S锁,再加上IX锁
SIX的使用: 在实际应用中,长需读整个 关系,并要更新其中个别元组, 如工资发放表,发放工资时,所 有元组都要读,要更新的只是其中个别元组。 这类应用情况,无$IX锁可有两种方案: 1、关系一级加X锁关系以上加X锁。问题。 2、所有许要更新的元组加X锁,其余元组加 S锁。提高了并发度。问题:锁太多。 在关系一级上加SX锁的工作情况。好处
7 SIX的使用: 在实际应用中,长需读整个 关系,并要更新其中个别元组, 如工资发放表,发放工资时,所 有元组都要读,要更新的只是其中个别元组。 这类应用情况,无SIX锁可有两种方案: 1、关系一级加X锁关系以上加IX锁。问题。 2、所有许要更新的元组加X锁,其余元组加 S锁。提高了并发度。问题:锁太多。 在关系一级上加SIX锁的工作情况。好处
数据库 IS IX 关系 IS X 元组 S
8 IX 数据库 IS IX 关系 IS X 元组 S
Compatibi l ity matrix NL IS IX S SIX X IS Y Y N Y Y Y N N N Y Y N Y N N SIX Y Y N N N N × Y N N N N N
9 Compatibility matrix NL IS IX S SIX X IS Y Y Y Y Y N IX Y Y Y N N N S Y Y N Y N N SIX Y Y N N N N X Y N N N N N