2022年数据库并发控制归类 .pdf
《2022年数据库并发控制归类 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库并发控制归类 .pdf(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 八 章并 发 控 制第 一 节并 发 控 制 概 述数 据 库 是 一 个 共 享 资 源 , 可 以 供 多 个 用 户 使 用 。 允 许 多 个 用 户 同时 使 用 的 数 据 库 系 统 称 为 多 用 户 数 据 库 系 统 。例 如 飞 机 定 票 数 据 库 系统 、银 行 数 据 库 系 统 等 都 是 多 用 户 数 据 库 系 统 。 在 这 样 的 系 统 中 , 在同 一 时 刻 并 行 运 行 的 事 务 数 可 达 数 百 个 。事 务 可 以 一 个 一 个 地 串 行 执 行 , 即 每 个 时 刻 只 有 一 个 事 务 运 行 ,其 他 事 务 必 须
2、 等 到 这 个 事 务 结 束 以 后 方 能 运 行 。事 务 在 执 行 过 程 中 需要 不 同 的 资 源 ,有 时 需 要 CPU ,有 时 需 要 存 取 数 据 库 ,有 时 需 要I/ O,有 时 需 要 通 信 。 如 果 事 务 串 行 执 行 , 则 许 多 系 统 资 源 将 处 于 空 闲 状 态 。因 此 ,为 了 充 分 利 用 系 统 资 源 发 挥 数 据 库 共 享 资 源 的 特 点 ,应 该 允 许多 个 事 务 并 行 地 执 行 。在 单 处 理 机 系 统 中 ,事 务 的 并 行 执 行 实 际 上 是 这 些 并 行 事 务 的 并行 操 作
3、 轮 流 交 叉 运 行 。 这 种 并 行 执 行 方 式 称 为 交 叉 并 发 方 式( Int er l eave d Concur rency ) 。 虽 然 单 处 理 机 系 统 中 的 并 行 事 务 并 没有 真 正 地 并 行 运 行 ,但 是 减 少 了 处 理 机 的 空 闲 时 间 ,提 高 了 系 统 的 效率 。在 多 处 理 机 系 统 中 ,每 个 处 理 机 可 以 运 行 一 个 事 务 ,多 个 处 理 机可 以 同 时 运 行 多 个 事 务 ,实 现 多 个 事 务 真 正 的 并 行 运 行 。这 种 并 行 执行 方 式 称 为 同 时 并 发
4、方 式( Si mu lt aneous Concur rency)。本章 讨 论 的数 据 库 系 统 并 发 控 制 技 术 是 以 单 处 理 机 系 统 为 基 础 的 。这 些 理 论 可 以推 广 到 多 处 理 机 的 情 况 。当 多 个 用 户 并 发 地 存 取 数 据 库 时 就 会 产 生 多 个 事 务 同 时 存 取 同一 数 据 的 情 况 。若 对 并 发 操 作 不 加 控 制 就 可 能 会 存 取 和 存 储 不 正 确 的数 据 ,破 坏 数 据 库 的 一 致 性 。所 以 数 据 库 管 理 系 统 必 须 提 供 并 发 控 制机 制 。 并 发
5、控 制 机 制 是 衡 量 一 个 数 据 库 管 理 系 统 性 能 的 重 要 标 志 之一 。在 第 七 章 中 已 经 讲 到 , 事 务 是 并 发 控 制 的 基 本 单 位 , 保 证 事 务A CI D 特 性 是 事 务 处 理 的 重 要 任 务 , 而 事 务 A CI D 特 性 可 能 遭 到 破 坏的 原 因 之 一 是 多 个 事 务 对 数 据 库 的 并 发 操 作 造 成 的 。为 了 保 证 事 务 的隔 离 性 更 一 般 ,为 了 保 证 数 据 库 的 一 致 性 , D B M S 需 要 对 并 发 操 作 进行 正 确 调 度 。 这 些 就
6、是 数 据 库 管 理 系 统 中 并 发 控 制 机 制 的 责 任 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 38 页 - - - - - - - - - 仔 细 分 析 并 发 操 作 带 来 的 数 据 不 一 致 性 包 括 三 类 :丢 失 修 改 、不可 重 复 读 和 读 “ 脏 ” 数 据 。产 生 上 述 三 类 数 据 不 一 致 性 的 主 要 原 因 是 并 发 操 作 破 坏 了 事 务的 隔 离 性 。并 发 控 制 就 是 要 用
7、正 确 的 方 式 调 度 并 发 操 作 ,使 一 个 用 户事 务 的 执 行 不 受 其 他 事 务 的 干 扰 , 从 而 避 免 造 成 数 据 的 不 一 致 性 。另 一 方 面 ,对 数 据 库 的 应 用 有 时 允 许 某 些 不 一 致 性 ,例 如 有 些 统计 工 作 涉 及 数 据 量 很 大 , 读 到 一 些 “ 脏 ” 数 据 对 统 计 精 度 没 什 么 影 响 ,这 时 可 以 降 低 对 一 致 性 的 要 求 以 减 少 系 统 开 销 。并 发 控 制 的 主 要 技 术 是 封 锁 ( L ocki ng) 。第 八 章并 发 控 制第 二 节封
8、 锁封 锁 是 实 现 并 发 控 制 的 一 个 非 常 重 要 的 技 术 。 所 谓 封 锁 就 是 事 务T 在 对 某 个 数 据 对 象 例 如 表 、 记 录 等 操 作 之 前 , 先 向 系 统 发 出 请 求 ,对 其 加 锁 。加 锁 后 事 务 T 就 对 该 数 据 对 象 有 了 一 定 的 控 制 ,在 事 务 T释 放 它 的 锁 之 前 , 其 他 的 事 务 不 能 更 新 此 数 据 对 象 。确 切 的 控 制 由 封 锁 的 类 型 决 定 。基 本 的 封 锁 类 型 有 两 种 :排 它 锁(E xcl usi ve Lock s, 简 称 X 锁
9、 )和 共 享 锁 (Share L ock s, 简 称S 锁 ).排 它 锁 又 称 为 写 锁 。 若 事 务T 对 数 据 对 象 A 加 上X 锁 , 则 只 允许 T 读 取 和 修 改A , 其 他 任 何 事 务 都 不 能 再 对 A 加 任 何 类 型 的 锁 ,直 到 T 释 放 A 上 的 锁 。 这 就 保 证 了 其 他 事 务 在T 释 放 A 上 的 锁 之 前不 能 再 读 取 和 修 改 A 。共 享 锁 又 称 为 读 锁 。若 事 务T 对 数 据 对 象 A 加 上S 锁 ,则 事 务 T可 以 读 A 但 不 能 修 改A , 其 他 事 务 只 能
10、 再 对 A 加S 锁 , 而 不 能 加 X锁 ,直 到 T 释 放 A 上 的S 锁 。这 就 保 证 了 其 他 事 务 可 以 读A ,但 在 T释 放 A 上 的S 锁 之 前 不 能 对A 做 任 何 修 改 。第 八 章并 发 控 制第 三 节封 锁 协 议在 运 用 X 锁 和 S 锁 这 两 种 基 本 封 锁 , 对 数 据 对 象 加 锁 时 , 还 需 要约 定 一 些 规 则 , 例 如 何 时 申 请X 锁 或 S 锁 、 持 锁 时 间 、 何 时 释 放 等 。称 这 些 规 则 为 封 锁 协 议 ( L ocki ng Protocol ) 。 对 封 锁
11、方 式 规 定 不 同的 规 则 ,就 形 成 了 各 种 不 同 的 封 锁 协 议 。 下 面 介 绍 三 级 封 锁 协 议 。 对并 发 操 作 的 不 正 确 调 度 可 能 会 带 来 丢 失 修 改 、 不 可 重 复 读 和 读 “ 脏 ”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 38 页 - - - - - - - - - 数 据 等 不 一 致 性 问 题 ,三 级 封 锁 协 议 分 别 在 不 同 程 度 上 解 决 了 这 一 问题 。为
12、并 发 操 作 的 正 确 调 度 提 供 一 定 的 保 证 。不 同 级 别 的 封 锁 协 议 达到 的 系 统 一 致 性 级 别 是 不 同 的 。一 、 一 级 封 锁 协 议一 级 封 锁 协 议 是 :事 务 T 在 修 改 数 据 R 之 前 必 须 先 对 其 加X 锁 ,直 到 事 务 结 束 才 释 放 。 事 务 结 束 包 括 正 常 结 束 ( COM M I T ) 和 非 正 常结 束 ( ROL L B A CK ) 。一 级 封 锁 协 议 可 防 止 丢 失 修 改 , 并 保 证 事 务T 是 可 恢 复 的 。在 一 级 封 锁 协 议 中 ,如 果
13、 仅 仅 是 读 数 据 不 对 其 进 行 修 改 ,是 不 需要 加 锁 的 , 所 以 它 不 能 保 证 可 重 复 读 和 不 读 “ 脏 ” 数 据 。二 、 二 级 封 锁 协 议二 级 封 锁 协 议 是 : 一 级 封 锁 协 议 加 上 事 务T 在 读 取 数 据R 之 前必 须 先 对 其 加 S 锁 , 读 完 后 即 可 释 放 S 锁 。二 级 封 锁 协 议 除 防 止 了 丢 失 修 改 , 还 可 进 一 步 防 止 读 “ 脏 ” 数 据 。在 二 级 封 锁 协 议 中 ,由 于 读 完 数 据 后 即 可 释 放 S 锁 ,所 以 它 不 能保 证 可
14、 重 复 读 。三 、 三 级 封 锁 协 议三 级 封 锁 协 议 是 : 一 级 封 锁 协 议 加 上 事 务T 在 读 取 数 据R 之 前必 须 先 对 其 加 S 锁 , 直 到 事 务 结 束 才 释 放 。三 级 封 锁 协 议 除 防 止 了 丢 失 修 改 和 不 读 “ 脏 ” 数 据 外 ,还 进 一 步 防止 了 不 可 重 复 读 。上 述 三 级 协 议 的 主 要 区 别 在 于 什 么 操 作 需 要 申 请 封 锁 ,以 及 何 时释 放 锁 (即 持 锁 时 间 )第 八 章并 发 控 制第 四 节活 锁 和 死 锁和 操 作 系 统 一 样 , 封 锁
15、的 方 法 可 能 引 起 活 锁 和 死 锁 。一 、 活 锁如 果 事 务 T 1 封 锁 了 数 据 R , 事 务 T 2 又 请 求 封 锁 R, 于 是T 2 等待 。T 3 也 请 求 封 锁 R,当T 1 释 放 了 R 上 的 封 锁 之 后 系 统 首 先 批 准 了T 3 的 请 求 , T 2 仍 然 等 待 。 然 后 T 4 又 请 求 封 锁 R, 当T 3 释 放 了 R 上的 封 锁 之 后 系 统 又 批 准 了T4 的 请 求 T 2 有 可 能 永 远 等 待 , 这 就 是活 锁 的 情 形 ,避 免 活 锁 的 简 单 方 法 是 采 用 先 来 先
16、 服 务 的 策 略 。当 多 个事 务 请 求 封 锁 同 一 数 据 对 象 时 ,封 锁 子 系 统 按 请 求 封 锁 的 先 后 次 序 对名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 38 页 - - - - - - - - - 事 务 排 队 ,数 据 对 象 上 的 锁 一 旦 释 放 就 批 准 申 请 队 列 中 第 一 个 事 务 获得 锁 。二 、 死 锁如 果 事 务 T 1 封 锁 了 数 据 R 1, T 2 封 锁 了 数 据R2, 然
17、后 T 1 又 请求 封 锁 R2,因T 2 已 封 锁 了 R2,于 是 T 1 等 待 T 2 释 放 R2 上 的 锁 。接着 T 2 又 申 请 封 锁 R1, 因 T 1 已 封 锁 了R1, T 2 也 只 能 等 待T 1 释 放R1 上 的 锁 。这 样 就 出 现 了T 1 在 等 待 T 2,而T 2 又 在 等 待 T 1 的 局 面 ,T 1 和 T 2 两 个 事 务 永 远 不 能 结 束 , 形 成 死 锁 。 如 图 8. 4(b)所 示 。死 锁 的 问 题 在 操 作 系 统 和 一 般 并 行 处 理 中 已 做 了 深 入 研 究 ,目 前在 数 据 库
18、 中 解 决 死 锁 问 题 主 要 有 两 类 方 法 ,一 类 方 法 是 采 取 一 定 措 施来 预 防 死 锁 的 发 生 ,另 一 类 方 法 是 允 许 发 生 死 锁 ,采 用 一 定 手 段 定 期诊 断 系 统 中 有 无 死 锁 , 若 有 则 解 除 之 。1.死 锁 的 预 防在 数 据 库 中 ,产 生 死 锁 的 原 因 是 两 个 或 多 个 事 务 都 已 封 锁 了 一 些数 据 对 象 ,然 后 又 都 请 求 对 已 为 其 他 事 务 封 锁 的 数 据 对 象 加 锁 ,从 而出 现 死 等 待 。防 止 死 锁 的 发 生 其 实 就 是 要 破
19、坏 产 生 死 锁 的 条 件 。预 防死 锁 通 常 有 两 种 方 法 :( 1) 一 次 封 锁 法一 次 封 锁 法 要 求 每 个 事 务 必 须 一 次 将 所 有 要 使 用 的 数 据 全 部 加锁 , 否 则 就 不 能 继 续 执 行 。 如 图8. 4( b) 的 例 子 中 , 如 果 事 务 T 1 将 数据 对 象 R1 和 R2 一 次 加 锁 , T 1 就 可 以 执 行 下 去 , 而T 2 等 待 。 T 1 执行 完 后 释 放 R1, R2 上 的 锁 , T 2 继 续 执 行 。 这 样 就 不 会 发 生 死 锁 。一 次 封 锁 法 虽 然 可
20、 以 有 效 地 防 止 死 锁 的 发 生 ,但 也 存 在 问 题 。第一 , 一 次 就 将 以 后 要 用 到 的 全 部 数 据 加 锁 , 势 必 扩 大 了 封 锁 的 范 围 ,从 而 降 低 了 系 统 的 并 发 度 。第 二 ,数 据 库 中 数 据 是 不 断 变 化 的 ,原 来不 要 求 封 锁 的 数 据 ,在 执 行 过 程 中 可 能 会 变 成 封 锁 对 象 ,所 以 很 难 事先 精 确 地 确 定 每 个 事 务 所 要 封 锁 的 数 据 对 象 , 为 此 只 能 扩 大 封 锁 范围 ,将 事 务 在 执 行 过 程 中 可 能 要 封 锁 的
21、数 据 对 象 全 部 加 锁 ,这 就 进 一步 降 低 了 并 发 度 。( 2) 顺 序 封 锁 法顺 序 封 锁 法 是 预 先 对 数 据 对 象 规 定 一 个 封 锁 顺 序 ,所 有 事 务 都 按这 个 顺 序 实 行 封 锁 。例 如 在 B 树 结 构 的 索 引 中 ,可 规 定 封 锁 的 顺 序 必须 是 从 根 结 点 开 始 , 然 后 是 下 一 级 的 子 女 结 点 , 逐 级 封 锁 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共
22、 38 页 - - - - - - - - - 顺 序 封 锁 法 可 以 有 效 地 防 止 死 锁 , 但 也 同 样 存 在 问 题 。 第 一 , 数据 库 系 统 中 封 锁 的 数 据 对 象 极 多 ,并 且 随 数 据 的 插 入 、删 除 等 操 作 而不 断 地 变 化 ,要 维 护 这 样 的 资 源 的 封 锁 顺 序 非 常 困 难 ,成 本 很 高 。 第二 ,事 务 的 封 锁 请 求 可 以 随 着 事 务 的 执 行 而 动 态 地 决 定 ,很 难 事 先 确定 每 一 个 事 务 要 封 锁 哪 些 对 象 ,因 此 也 就 很 难 按 规 定 的 顺 序
23、 去 施 加 封锁 。可 见 ,在 操 作 系 统 中 广 为 采 用 的 预 防 死 锁 的 策 略 并 不 很 适 合 数 据库 的 特 点 , 因 此D B M S 在 解 决 死 锁 的 问 题 上 普 遍 采 用 的 是 诊 断 并 解 除死 锁 的 方 法 。2.死 锁 的 诊 断 与 解 除数 据 库 系 统 中 诊 断 死 锁 的 方 法 与 操 作 系 统 类 似 ,一 般 使 用 超 时 法或 事 务 等 待 图 法 。( 1) 超 时 法如 果 一 个 事 务 的 等 待 时 间 超 过 了 规 定 的 时 限 , 就 认 为 发 生 了 死锁 。 超 时 法 实 现 简
24、 单 , 但 其 不 足 也 很 明 显 。 一 是 有 可 能 误 判 死 锁 , 事务 因 为 其 他 原 因 使 等 待 时 间 超 过 时 限 ,系 统 会 误 认 为 发 生 了 死 锁 。二是 时 限 若 设 置 得 太 长 , 死 锁 发 生 后 不 能 及 时 发 现 。( 2) 等 待 图 法事 务 等 待 图 是 一 个 有 向 图 G=(T , U ) 。 T 为 结 点 的 集 合 , 每 个 结点 表 示 正 运 行 的 事 务 ; U 为 边 的 集 合 , 每 条 边 表 示 事 务 等 待 的 情 况 。若 T 1 等 待 T 2, 则 T 1, T 2 之 间
25、 划 一 条 有 向 边 , 从 T 1 指 向T 2。 事 务等 待 图 动 态 地 反 映 了 所 有 事 务 的 等 待 情 况 。并 发 控 制 子 系 统 周 期 性 地( 比 如 每 隔 1 mi n) 检 测 事 务 等 待 图 , 如 果 发 现 图 中 存 在 回 路 , 则 表示 系 统 中 出 现 了 死 锁 。D B M S 的 并 发 控 制 子 系 统 一 旦 检 测 到 系 统 中 存 在 死 锁 ,就 要 设 法解 除 。通 常 采 用 的 方 法 是 选 择 一 个 处 理 死 锁 代 价 最 小 的 事 务 ,将 其 撤消 ,释 放 此 事 务 持 有 的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据库并发控制归类 2022 数据库 并发 控制 归类
限制150内