DBMS_09并发控制.ppt

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DBMS_09并发控制

第九章: 并发控制 串行调度和可串行化调度 调度是一个或多个事务的重要操作按时间排序的一个序列。 当研究并发时,重要的读写动作发生在主存缓冲区,而不是在磁盘上。 在考虑并发时只有READ和WRITE及其顺序是重要的,而我们将忽略INPUT和OUTPUT动作。 串行调度 串行调度保持数据库状态的一致性,但数据库终态与事务顺序有关。 可串行化调度 例9.2,9.3 Serial Schedule 事务语义的影响 事务细节影响事务调度,但调度器考虑事务所进行的计算的细节是不现实的。 为了简化调度器的工作,通常假定: 事务T所写的任意数据库元素A被赋予一个值,该值以这样一种方式依赖于数据库状态,即不会发生算术上的巧合。 事务和调度的一种记法 rT(X)和wT(X)分别表示事务T读和写数据库元素X。 动作是形如wi(X)或wi(X)的表达式,分别表示事务Ti读或写数据库元素X。 事务Ti是具有下标i的动作序列。 事务集合T的调度S是一个动作序列,其中对T中的每个事务Ti, Ti中的动作在S中出现的顺序和其在Ti自身定义中出现的顺序一样。我们说S是组成它的事务动作的一个交错。 例 9.2 冲突可串行化 冲突:调度中一对连续的动作,它们满足:如果它们的顺序交换,那么涉及的事务中至少有一个的行为会改变。 假设Ti和Tj是不同的事务,即i?j。 ri(X);rj(Y)从不会是冲突,即使X=Y。 如果X?Y,则ri(X);wj(Y)不会是冲突。 如果X?Y,则wi(X) ; rj(Y)不会是冲突。 只要X?Y,则w i(X) ; wj(Y)不会是冲突。 冲突 不能交换动作顺序的情形: 同一事务的两个动作冲突。 不同事务对同一数据库元素的写冲突。 不同事务对同一数据库元素的读和写冲突。 结论: 不同事务的任何两个动作在顺序上可以交换,除非: 1)它们涉及同一数据库元素。 2)至少有一个写。 冲突 冲突等价的调度:通过一系列相邻动作的非冲突交换能将两个调度中的一个转换为另一个。 如果一个调度冲突等价于一个串行调度,那么我们说该调度是冲突可串行化的。 冲突可串行化是可串行化的一个充分条件,是商用系统中的调度器通常使用的条件。 例 优先图(precedence graph )和冲突可串行性判断 已知调度S,其中涉及事务T1和T2。如果有T1的动作A1和T2的动作A2,满足: 在S中A1在A2前; A1和A2都涉及同一数据库元素;并且 A1和A2中至少有一个是写动作。 则称T1优先于T2,写作T1<T2。 任何冲突等价于S的调度中,A1将出现在A2前。 优先图 优先图 优先图 优先图 无环优先图 9.3 使用锁的可串行化实现 锁 当调度器使用锁时,事务在读写数据库元素之外还必须申请和释放锁。 锁的使用必须在两种意义上都是正确的: 一种适用于事务的结构,事务的一致性。 一种适用于调度的结构,调度的合法性。 记法: li (X) ui (X) Basic Locking Protocol Basic Locking Protocol Basic Locking Protocol Basic Locking Protocol Basic Locking Protocol Basic Locking Protocol Basic Locking Protocol Basic Locking Protocol Basic Locking Protocol Basic Locking Protocol Basic Locking Protocol Basic Locking Protocol Locking ? Serializability Two Phase Locking (2PL) Rule: In every transaction, all lock requests precede all unlock requests Ensures conflict serializability 2PL Violation 2PL Violation 2PL-consistent Transaction Two “phases” 2PL ? Conflict Serializability 9.4 用多种锁方式的封锁系统 两种锁: 共享锁或读锁 排他锁或写锁 对任何数据库元素X: One exclusive lock Any number of shared locks, no exclusive lock Notation 事务Ti请求数据库元素X上的一个共享锁: sli(X) 事务Ti请求数据库元素X上的一个排他锁: xli(X) 在共享/排他锁系统中 事务的一致性 Read (X): X上有共享锁或排他锁 Write (X): X上有排他锁 事务的两阶段

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档