数据库事务处理的艺术 事务管理与并发控制 作者:李海翔 等
数据库事务处理的艺术 事务管理与并发控制 出版社:机械工业出版社
数据库事务处理的艺术 事务管理与并发控制 内容简介
作者有近20年数据库内核研发经验,曾是Oracle公司MySQL全球开发组核心成员,现在是腾讯的T4级专家。数据库领域的泰斗杜小勇老师亲自为是本书作序,数据库学术界的知名学者张孝博士(中国人民大学)、卢卫博士后(中国人民大学)、彭煜玮博士(武汉大学),以及数据库工业界的知名专家盖国强和姜承尧等也给予了极高的评价。
全书共12章,首先介绍数据库事务管理与并发控制的基础理论和工作机制,然后再从工程实践的角度对比和分析了4个主流数据库的事务管理与并发控制的实现原理,最后通过源代码分析了PostgreSQL和MySQL在事务管理与并发控制上的技术架构与设计思想。
第一篇(1-2章) 事务管理与并发控制基础理论
对数据库事务管理和并发控制的基础理论、核心技术和工作原理进行了讲解,包括数据库事务处理技术的范围、数据的异常现象及成因、事务模型、并发访问控制技术、以及隔离性等。
第二篇(3-6章) 事务管理与并发控制应用实例研究
以Informix、Oracle、PostgreSQL和MySQL/InnoDB等主流数据库系统为例,对他们的事务管理和并发控制的实现技术、工作原理以及原理背后的设计思想进行了深度分析和对比。
第三篇(7-9章) PostgreSQL事务管理与并发控制源码分析
首先对PostgreSQL事务处理技术的架构、层次、设计思想、相关数据结构和实现原理进行了深入系统的分析,然后从功能角度对PostgreSQL的事务模型、并发控制、一致性、隔离性以及其所使用的SS2PL、MVCC、SSI等技术做了深入的讲解。
第四篇(10-12章) InnoDB事务管理与并发控制源码分析
首先对事MySQL/InnoDB的务处理技术的架构、层次、设计思想、相关数据结构和实现原理进行了深入系统的分析,然后从功能角度对MySQL/InnoDB的事务模型、并发控制、一致性、隔离性以及其所使用的SS2PL、MVCC等技术做了深入的讲解。
数据库事务处理的艺术 事务管理与并发控制 目录
推荐序一
推荐序二
推荐序三
推荐序四
推荐序五
推荐序六
前言
第一篇 事务管理与并发控制基础理论
第1章 数据库管理系统的事务原理 2
1.1 事务模型要解决的问题 2
1.1.1 为什么需要事务处理机制 2
1.1.2 事务机制要处理的问题——事务故障、系统故障、介质故障 4
1.1.3 并发带来的问题椚?常见的读数据异常现象 4
1.1.4 并发带来的问题——写并发操作引发的数据异常现象 8
1.1.5 语义约束引发的数据异常现象 9
1.1.6 其他的异常 11
1.1.7 深入探讨三种读数据异常现象 13
1.2 事务处理技术的原理 17
1.2.1 什么是事务 17
1.2.2 事务的属性 20
1.2.3 ACID的实现技术 24
1.3 事务的模型 26
1.4 并发控制技术 27
1.4.1 并发控制技术的实现策略 27
1.4.2 并发控制技术的实现技术 28
1.5 日志技术与恢复子系统31
1.6 本章小结 32
第2章 深入理解事务管理和并发控制技术 33
2.1 在正确性和效率之间平衡 33
2.1.1 隔离级别 34
2.1.2 快照隔离 36
2.1.3 理解可见性 39
2.2 并发控制 40
2.2.1 基于锁的并发控制方法 42
2.2.2 基于时间戳的并发控制方法 47
2.2.3 基于有效性检查的并发控制方法 52
2.2.4 基于MVCC的并发控制方法 53
2.2.5 基于MVCC的可串行化快照隔离并发控制方法 56
2.2.6 再深入探讨三种读数据异常现象 60
2.3 并发控制技术的比较 62
2.3.1 并发控制技术整体比较 62
2.3.2 S2PL和SS2PL的比较 64
2.3.3 事务属性与并发控制技术的关系 65
2.3.4 SCO和SS2PL的比较 66
2.3.5 TO和SS2PL的比较 67
2.4 深入探讨隔离级别 68
2.4.1 隔离级别与基于锁的并发控制方法 68
2.4.2 隔离级别与各种并发控制技术 69
2.5 事务的管理 70
2.5.1 事务的开始 71
2.5.2 事务的提交 71
2.5.3 事务的中止与回滚 72
2.5.4 子事务与SAVEPOINT 72
2.5.5 长事务的管理 73
2.5.6 XA 74
2.6 事务相关的实战问题讨论 75
2.7 本章小结 76
第二篇 事务管理与并发控制应用实例研究
第3章 Informix事务管理与并发控制 78
3.1 Informix的事务操作 78
3.2 Informix的封锁技术 83
3.3 隔离级别与数据异常 85
3.4 本章小结 88
第4章 PostgreSQL事务管理与并发控制 89
4.1 PostgreSQL事务操作 89
4.2 SQL操作与锁 92
4.3 隔离级别与数据异常 108
4.4 本章小结 118
第5章 InnoDB事务管理与并发控制 119
5.1 InnoDB的事务模型 119
5.2 InnoDB基于锁的并发控制 123
5.3 InnoDB基于MVCC的并发控制 130
5.4 隔离级别与数据异常 131
5.5 本章小结 138
第6章 Oracle事务管理与并发控制 139
6.1 Oracle的事务操作 139
6.2 Oracle的封锁技术 142
6.3 MVCC技术 145
6.4 隔离级别与数据异常 157
6.5 本章小结 160
第三篇 PostgreSQL事务管理与并发控制源码分析
第7章 PostgreSQL事务系统的实现 162
7.1 架构概述 162
7.2 事务管理的基础 166
7.3 事务操作 173
7.4 子事务的管理 186
7.5 本章小结 188
第8章 PostgreSQL并发控制系统的实现—封锁 189
8.1 锁的概述 189
8.2 系统锁 192
8.3 事务锁 214
8.4 事务锁的管理 239
8.5 死锁检测 247
8.6 从锁的角度看用法 254
8.7 本章小结 262
第9章 PostgreSQL并发控制系统的实现—MVCC 263
9.1 快照 264
9.2 可见性判断与多版本 273
9.3 可串行化快照原理 285
9.4 PostgreSQL可串行化快照的实现 289
9.5 隔离级别 336
9.6 本章小结 340
第四篇 InnoDB事务管理与并发控制源码分析
第10章 InnoDB事务系统的实现 342
10.1 架构概述 342
10.2 事务管理的基础 346
10.3 事务操作 353
10.4 InnoDB事务模型 378
10.5 本章小结 382
第11章 InnoDB并发控制系统的实现—两阶段锁 383
11.1 锁的概述 383
11.2 系统锁 386
11.3 事务锁之记录锁 401
11.4 事务锁之元数据锁 433
11.5 SQL语义定义锁 476
11.6 其他类型的锁 493
11.7 事务与锁 499
11.8 本章小结 500
第12章 InnoDB并发控制系统的实现—MVCC 502
12.1 数据结构 503
12.2 可见性判断 506
12.3 多版本的实现 509
12.4 一致性读和半一致性读 511
12.5 本章小结 513
附录 TDSQL简介 514
数据库事务处理的艺术 事务管理与并发控制 精彩文摘
1.3事务的模型
事务的实现,在不同的数据库系统中是不同的,这是因为事务有着不同的模型,在JimGray的《事务处理概念与技术》一书的第四章事务模型中,事务被分为:
平板事务(FlatTransactions):事务块中的所有SQL语句,构成一个逻辑单元,要么都成功,要么因之一失败都回滚。PostgreSQL的事务管理如果不考虑保存点(Savepoint)机制,可以认为就是一个平板类型的事务,事务块内的一个SQL失败,导致整个事务必须回滚,之前执行成功的操作也必须回滚掉。
带有保存点的平板事务(FlatTransactionsWithSavepoints):在平板事务的基础上,实现了保存点技术,这样使得一个事务块,可以划分出不同的层次,每个层次之间为一个逻辑单元,后面失败的SQL不影响之前保存点前发生的操作,即回滚发生在局部。PostgreSQL、InnoDB、Informix在平板事务的基础上,支持了保存点技术。
链式事务(ChainedTransactions):与平板事务不同的是,链式事务在提交一个事务后,释放一些资源如锁等资源,但是,一些上下文环境如事务的载体(存放事务信息的结构体或类等对象)不被释放,会留给下一个事务使用。用户感觉门己的逻辑上的处理单元与之前的事务似乎没有COMMIT之类命令执行的明显分割。如InnoDB的事务模型,就是链式事务的代表(这句话不是说InnoDB不支持平板事务,实际上InnoDB支持平板事务、支持带有保存点的平板事务、支持链式事务,并通过XA技术支持下面谈到的分布式事务)。
本文来自怪你过分美丽投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。