事务是关系型数据库实现的核心内容,它具有原子性、一致性、隔离性和持久性等特点,是数据库实现并发控制和故障恢复的基础。本书首先分析了PostgreSQL数据库事务的实现机制,包括事务的基本概念、两阶段锁的原理及实现方法、多版本并发控制的原理及实现方法、故障恢复的实现方法等,然后通过介绍物理复制、逻辑复制、Zheap引擎的原理及实现、SSI的实现、两阶段提交的原理及实现,使读者获得了对事务更深入的理解,从而使读者既能了解事务的原理,又能清楚事务的实现细节。本书适合数据库内核开发及相关领域的研究人员、数据库DBA、高等院校相关专业的本科生或者研究生阅读。
作者简介
内容简介
前言
第1章 事务概述
1.1 事务的作用
1.2 事务的性质
1.3 事务的隔离级别
1.4 PostgreSQL中的事务
1.5 事务处理流程
1.6 异步提交
1.7 本章小结
第2章 锁
2.1 并发的异常现象
2.2 调度
2.3 并发控制
2.4 两阶段锁
2.5 PostgreSQL中的锁
2.6 常规锁的内存结构
2.7 常规锁的加锁
2.8 行锁
2.9 死锁检测
2.10 本章小结
第3章 MVCC
3.1 元组上的版本信息
3.2 快照
3.3 获得快照
3.4 可见性判断
3.5 本章小结
第4章 故障恢复
4.1 故障的分类
4.2 事务日志
4.3 日志文件
4.4 查看日志内容
4.5 日志格式
4.6 XLog初始化
4.7 日志的注册
4.8 日志的组成
4.9 日志的写入
4.10 控制文件
4.12 检查点
4.13 日志归档
4.14 基础备份
4.15 PITR
4.16 故障恢复
4.17 本章小结
第5章 物理复制
5.1 环境搭建
5.2 物理复制
5.3 同步复制
5.4 Hot Standby
5.5 物理复制槽
5.6 本章小结
第6章 逻辑解码与逻辑复制
6.1 复制槽
6.2 逻辑解码
6.3 逻辑复制
6.4 本章小结
第7章 SSI
7.1 SSI介绍
7.2 “危险结构”
7.3 SSI的优化方法
7.4 SSI的实现方法
7.5 本章小结
第8章 Zheap引擎
8.1 事务槽
8.2 TPD
8.3 元组的变化
8.4 Undo日志
8.5 事务槽的使用
8.6 可见性判断
8.7 Undo操作
8.8 Undo日志清理
8.9 本章小结
第9章 两阶段提交
9.1 两阶段提交简介
9.2 PostgreSQL中的2PC
9.3 本章小结
附录A 存储引擎概述
A.1 存储文件形式
A.2 缓冲区
A.3 SLRU
附录B 事务的文件结构
B.1 access目录
B.2 storage目录
B.3 replication目录
B.4 utils目录

