技术教育社区
www.teccses.org

数据库事务处理的艺术:事务管理与并发控制

封面

作者:李海翔等著

页数:513

出版社:机械工业出版社

出版日期:2017

ISBN:9787111582359

电子书格式:pdf/epub/txt

内容简介

(1)作者是腾讯的T4级专家,有近20年数据库内核研发经验,曾是Oracle公司MySQL全球开发组核心成员
(2)中国计算机学会(CCF)常务理事、数据库专委会主任、数据库领域著名专家、中国人民大学杜小勇教授亲自作序推荐
(3)人民大学张孝和卢卫教授、武汉大学彭煜炜教授、云和恩墨CEO盖国强、腾讯金融支付数据库运营与研发部副总监姜承尧联袂推荐

作者简介

李海翔(网名:那海蓝蓝)
资深数据专家,拥有近20年数据库内核研发经验,曾就职于人大金仓、Oracle公司MySQL全球开发组等,现就职于腾讯TEG计费平台部,T4级专家。中国人民大学工程硕士企业导师。
数据库技术精湛,不仅熟悉PostgreSQL、GreenPlum、MySQL、Informix、CockroachDB等数据库的使用,而且熟悉它们的源码,尤其擅长数据库的查询优化技术、事务处理技术和数据库架构技术。数据库相关工作阅历丰富,从事过数据库研发(JDBC驱动、管理工具套机、内核)、数据库测试、技术团队管理、数据库架构设计等多个岗位。
曾获得北京市科学技术进步奖一等奖和腾讯公司级技术突破奖,做过包括863、核高基、工信部、科技部、发改委、北京市科委等多个重大科技项目在内的30多个国家级大型项目。
除本书外,还撰写并出版了本书的姊妹篇《数据库查询优化器的艺术:原理解析与SQL性能优化》,被誉为数据库性能优化领域的经典。

相关资料

海翔热爱数据库研发,对数据库技术一直抱有一颗坚韧、执着之心,本书是他的经验和思索的体现,值得仔细研读。
——张孝(博士) 中国人民大学信息学院副教授
这本书具备较好的深度、广度、新度,这让我十分期待。
——卢卫(博士后) 中国人民大学信息学院副教授
本书聚焦于数据库中的事务处理,从原理、主流数据库实现、源码级实现三个角度进行了深度的探讨。尤其是后两个部分的介绍,让本书成为不可多得的有关于DBMS事务管理模块内部技术细节的参考资料。
——彭煜玮(博士) 武汉大学计算机学院副教授
海翔的著作以独到之角度阐释事务原理与并发控制,以庖丁解牛之刀为广大数据技术从业者剖析出宝贵的关节,实在是让人手不释卷。
——盖国强 云和恩墨创始人/Oracle ACE总监
学习MySQL看姜老师的书,学习优化器和事务处理,就看海翔老师的作品吧。
——姜承尧 腾讯金融支付数据库运营与研发部副总监
作者在数据库内核领域有多年理论研究与开发实践经验,目前负责腾讯金融分布式数据库TDSQL的内核研发工作。TDSQL旨在解决强一致性、高可用、高性能、分布式、配套设施、安全保障等方面的难题,为腾讯内外大量政企、金融客户的稳定运行保驾护航。

本书特色

作者有近20年数据库内核研发经验,曾是Oracle公司MySQL全球开发组核心成员,现在是腾讯的T4级专家。数据库领域的泰斗杜小勇老师亲自为是本书作序,数据库学术界的知名学者张孝博士(中国人民大学)、卢卫博士后(中国人民大学)、彭煜玮博士(武汉大学),以及数据库工业界的知名专家盖国强和姜承尧等也给予了极高的评价。
全书共12章,首先介绍数据库事务管理与并发控制的基础理论和工作机制,然后再从工程实践的角度对比和分析了4个主流数据库的事务管理与并发控制的实现原理,最后通过源代码分析了PostgreSQL和MySQL在事务管理与并发控制上的技术架构与设计思想。
最篇(1-2章) 事务管理与并发控制基础理论
对数据库事务管理和并发控制的基础理论、核心技术和工作原理进行了讲解,包括数据库事务处理技术的范围、数据的异常现象及成因、事务模型、并发访问控制技术、以及隔离性等。
第二篇(3-6章) 事务管理与并发控制应用实例研究
以Informix、Oracle、PostgreSQL和MySQL/InnoDB等主流数据库系统为例,对他们的事务管理和并发控制的实现技术、工作原理以及原理背后的设计思想进行了深度分析和对比。作者有近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 子事务与SAVEPOINT72
2.5.5 长事务的管理73
2.5.6 XA74
2.6 事务相关的实战问题讨论75
2.7 本章小结76
第二篇 事务管理与并发控制应用实例研究
第3章 Informix事务管理与并发控制78
3.1 Informix的事务操作78
3.1.1 开始事务78
3.1.2 提交事务79
3.1.3 回滚事务80
3.1.4 XA事务80
3.1.5 事务模型82
3.2 Informix的封锁技术83
3.2.1 锁的级别83
3.2.2 锁的粒度84
3.3 隔离级别与数据异常85
3.3.1 Informix支持的隔离级别85
3.3.2 隔离级别与日志的模式86
3.3.3 写偏序异常87
3.4 本章小结88
第4章 PostgreSQL事务管理与并发控制89
4.1 PostgreSQL事务操作89
4.1.1 开始事务90
4.1.2 提交事务90
4.1.3 回滚事务90
4.1.4 XA事务 91
4.1.5 自动控制事务91
4.2 SQL操作与锁92
4.2.1 锁的研究准备92
4.2.2 INSERT操作触发的锁94
4.2.3 SELECT操作触发的锁94
4.2.4 SELECT FOR UPDATE操作触发的锁97
4.2.5 UPDATE操作触发的锁100
4.2.6 DELETE操作触发的锁103
4.2.7 ANALYZE操作触发的锁106
4.2.8 CREATE INDEX操作触发的锁106
4.2.9 CREATE TRIGGER操作触发的锁107
4.2.10 锁的相关参数108
4.3 隔离级别与数据异常108
4.3.1 SQL标准定义的三种读异常108
4.3.2 写偏序异常115
4.4 本章小结118
第5章 InnoDB事务管理与并发控制119
5.1 InnoDB的事务模型119
5.1.1 开始事务120
5.1.2 提交事务与回滚事务121
5.1.3 MySQL的XA122
5.2 InnoDB基于锁的并发控制123
5.2.1 基于封锁技术实现基本的并发控制123
5.2.2 锁的种类124
5.2.3 锁的施加规则127
5.2.4 获取InnoDB行锁争用情况129
5.2.5 死锁129
5.3 InnoDB基于MVCC的并发控制130
5.4 隔离级别与数据异常131
5.4.1 SQL标准定义的三种读异常131
5.4.2 写偏序异常134
5.5 本章小结138
第6章 Oracle事务管理与并发控制139
6.1 Oracle的事务操作139
6.1.1 事务管理139
6.1.2 事务属性和隔离级别140
6.1.3 XA事务141
6.2 Oracle的封锁技术142
6.2.1 元数据锁的级别142
6.2.2 用户数据锁的级别143
6.3 MVCC技术145
6.3.1 MVCC的历史145
6.3.2 深入理解MVCC 147
6.3.3 Oracle的MVCC149
6.4 隔离级别与数据异常157
6.4.1 Oracle支持的隔离级别157
6.4.2 写偏序异常158
6.5 本章小结160
第三篇 PostgreSQL事务管理与并发控制源码分析
第7章 PostgreSQL事务系统的实现162
7.1 架构概述162
7.1.1 事务和并发控制相关的文件162
7.1.2 事务相关的整体架构164
7.2 事务管理的基础166
7.2.1 事务状态166
7.2.2 事务体171
7.2.3 事务运行的简略过程172
7.3 事务操作173
7.3.1 开始事务173
7.3.2 事务提交177
7.3.3 日志落盘179
7.3.4 事务回滚180
7.3.5 clog185
7.4 子事务的管理186
7.4.1 子事务与父事务的区别186
7.4.2 保存点187
7.5 本章小结188
第8章 PostgreSQL并发控制系统的实现—封锁189
8.1 锁的概述189
8.1.1 锁操作的本质189
8.1.2 与锁相关的文件190
8.1.3 与锁相关的内存初始化191
8.2 系统锁192
8.2.1 SpinLock192
8.2.2 LWLock198
8.2.3 SpinLock与LWLock比较213
8.3 事

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《数据库事务处理的艺术:事务管理与并发控制》
Article link:https://www.teccses.org/823171.html