火龙果oracle并发控制创新.pptVIP

  • 2
  • 0
  • 约6.93千字
  • 约 53页
  • 2016-02-26 发布于湖北
  • 举报
T1 T2 读C=16 C←C*2 写回C=32? rollback C恢复为16 ?? 读C=32? T1 T2 Xlock C,获得锁 读C=16 C←C*2 写回C=32 rollback C恢复为16 Unlock C Slock C 等待… 二级封锁协议可避免读“脏”数据 获得锁 读C=16 Unlock C T1 T2 Sclock B, 获得锁 读B=100 Unlock B Sclock B, 获得锁 读B=200 Unlock B Xlock B, 获得锁 读B=100 B←B*2 写回B=200 Commit Unlock B T1 T2 读B=100 读B=200 读B=100 B←B*2 写回B=200 二级封锁协议不可避免不可重复读 封锁协议 三级封锁协议 三级封锁协议 + 事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放 三级封锁协议可避免丢失修改、读“脏”数据和不可重复读。 T1 T2 Sclock B, 获得锁 读B=100 读B=100 commit Unlock B Xlock B 等待… T1 T2 读B=100 读B=200 读B=100 B←B*2 写回B=200 三级封锁协议可避免不可重复读 获得锁 读B=100 B←B*2 写回B=200 Commit Unlock B 封锁协议 X锁 S

文档评论(0)

1亿VIP精品文档

相关文档