第14章 并发控制与恢复

第14章 并发控制与恢复

考试范围: 14.1-14.3, 14.8-14.11

考试题型: 事务操作

考试内容:

1、锁/共享锁/排它锁的概念

在这里插入图片描述

在这里插入图片描述

2、多粒度锁 Multiple Granularity

在这里插入图片描述

在这里插入图片描述

3、两阶段封锁协议 The Two-Phase Locking Protocol

  • 两段锁协议是指同一事务对任何数据进行读写之前必须对该数据加锁,在释放一个封锁之后,该事务不再申请和获得任何其他封锁。

  • Each transaction issue lock and unlock requests in two phases:

    • Growing Phase 扩张阶段
      • A transaction may obtain locks, but may not release locks
    • Shrinking Phase 收缩阶段
      • A transaction may release locks, but may not obtain locks
  • 例子

    • T1:Slock A…Slock B…Xlock C…Unlock B…Unlock A…Unlock C
      T2:Slock A…Unlock A…Slock B…Xlock C…Unlock C…Unlock B

      T1符合两段锁协议,T2不符合。因为整个加锁阶段不能有解锁,解锁阶段不能有加锁

  • Initially, a transaction is in the growing phase. The transaction acquires locks as needed. Once the transaction releases a lock, it enters the shrinking phase, and it cannot issue lock requests (最初,交易处于增长阶段。事务根据需要获取锁。一旦事务释放锁,它就会进入收缩阶段,并且无法发出锁定请求)

  • 两阶段锁定协议的变体

    • Strict two-phase locking protocol
      • a transaction must hold all its X-locks until it commits/aborts 事务必须保留其所有 X 锁,直到提交/中止
      • Can ensure cascadeless and recoverable schedules 可以确保无级联和可恢复调度
    • Rigorous two-phase locking
      • all locks are held until commit/abort 所有锁都保持,直到提交/中止
      • transactions can be serialized in the order in which they commit 事务可以按照其提交的顺序进行串行化

4、日志的概念

  • 日志是一系列日志记录。记录保留有关数据库上的更新活动的信息 A log is a sequence of log records. The records keep information about update activities on the database

5、Checkpoint概念

  • 问题:当日志太大,重做/撤消日志中记录的所有事务可能非常慢
    • 处理整个日志非常耗时
    • 我们可能会不必要地重做已经将其更新输出到数据库的事务
  • 解决方法:通过定期执行检查点来简化恢复过程
    • 将当前驻留在主内存中的所有日志记录输出到稳定存储中
    • 将所有修改的缓冲区块输出到磁盘
    • 将日志记录**<checkpoint** L**>** 写入稳定存储,其中 L 是检查点时所有活动事务的列表
    • 执行检查点操作时停止所有更新
  • 示例
    在这里插入图片描述

6、立即的数据库更新

  • 立即修改方案允许在事务提交之前对缓冲区或磁盘本身更新未提交的事务,更新的块输出到磁盘可以在事务提交之前或之后的任何时间进行,块的输出顺序可能与写入块的顺序不同

  • 示例

    在这里插入图片描述

7、恢复策略(redo undo哪些事务)

  • 并发控制和恢复 Concurrency Control and Recovery

    • 未提交事务的更新不应对其他事务可见
    • 可以通过获取更新项目的排它锁并保持锁直到事务结束(strict two-phase locking)来确保
      在这里插入图片描述
  • 从故障中恢复
    在这里插入图片描述

    • 示例
      在这里插入图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值