首页>参考读物>计算机科学与技术>数据库

分布式数据库原理、架构与实践
作者 : 李海翔 著
丛书名 : 数据库技术丛书
出版日期 : 2021-10-09
ISBN : 978-7-111-69161-7
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 320
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书从原理、结构和案例三个维度深度剖析了如何设计一款分布式数据库。本书内容以腾讯金融级分布数据库TDSQL的研发过程为基础,深入分析了分布式数据库的底层运行原理、核心实现技术、完整架构和经典案例,其中重点分析了一致性问题。一致性问题也是设计分布式数据库时面临的主要问题,可以说只要完美解决了一致性问题,那一款高可用的分布式数据库的设计工作就已经完成80%了。
本书共分为三篇:
第*篇——原理篇(第1~4章):本篇先罗列出设计一款分布式数据库需要面对的挑战都有哪些,然后指出分布式设计的基本理论,*后总体分析了一致性问题的本质是什么;然后用一章的篇幅深入分析了不同类型的一致性问题的特点、本质和出现的根本原因,这为解决一致性问题奠定了基础;接着分了解决一致性问题的具体方案,并指出各种方案的重点和原理;*后则总体介绍分布式事务的原理和多种实现技术。
第二篇——架构篇(第5~6章):本篇以分布式事务处理技术作为主线,深入讨论了与分布式数据库架构相关的内容。其中,第5章从数据库架构的角度,对高可用性、可扩展性、存算分离架构解耦等影响架构的经典技术进行讨论;第6章从数据库架构的角度,对新硬件、云计算、微服务等影响架构的新技术进行深入分析。
第三篇——典型案例篇(第7~10章)本篇通过对业界经典案例的分析,帮读者夯实对架构、事务处理技术等内容的理解。本篇首先Spanner开始,探索其分布式架构、强一致性技术和事务处理技术。接下来对Percolator事务技术和开源数据库CockroachDB的分布式架构、事务处理技术、因果一致性进行讨论。*后,还对内存型数据库Hekaton、文档型分布式数据库MongoDB、分布式列存数据库HBase等数据库产品进行了分析。

图书特色

腾讯T14级别专家、腾讯金融云数据库首席研究员、腾讯TDSQL首席架构师撰写
基于经典理论、底层原理和近年学术研究,对分布式数据库所涉一致性、高可用性、并发访问控制等技术从原理、架构、案例三个角度进行深度剖析

图书前言

为什么写这本书
现代的分布式技术在互联网应用的驱动下,在CAP理论的引领下,已经有了很多新的内涵和外延。而分布式技术体系下,分布式数据库技术的发展方兴未艾,其中有很多“新”问题正在被研究,例如:CAP理论中代表分布式一致性的C和事务ACID中的C之间是什么关系?是否存在可结合之处?当然,也有很多“新”技术正在发展中。但是,在分布式数据库领域缺少体系化的、深入剖析数据库原理的书籍,使得这个领域的技术传播偏弱,尤其是分布式数据库领域的一致性等相关技术,存在概念混杂、理解不一的问题。笔者基于对该领域多年的科研和实践,历经数年,把对分布式数据库领域一些重要技术的理解和在实践中所得的经验整理成册,期待以图书的形式帮到更多读者。本书若是能促进分布式数据库的进一步发展,笔者将不胜荣幸。
本书主要内容
本书主要讨论如下3个话题。
分布式数据库中存在的问题和原理。科学研究,始于问题。本书首先对分布式数据库技术中一些典型问题进行分析,以明确本书所要研究和解决问题的技术方向。之后讨论CAP原理与ACID技术结合后的一些问题(重点是一致性问题)及技术,以及业界在这方面的科研成果和工程实现思路。
分布式数据库架构。从分布式数据库架构的角度,讨论影响架构的内在、外在技术因素,内在因素如强一致性、高可靠性、高可用性,外在因素如云计算、Serverless需
求等。
分布式数据库案例实践。从工程实践的角度,以案例的形式讨论诸多分布式系统的实现技术,涉及的数据库包括Spanner、CockroachDB、HBase、Greenplum等。
本书主要特色
本书以前沿技术和工程实践为抓手,通过问题确认、原理阐述、架构剖析、实例分析,有深度地进行了以下三项工作。
深入经典技术:对经典技术进行深度探索,如剖析CAP原理的发展过程,深度解读事务处理技术(如MVCC、OCC、DTA等技术)的发展和相关研究。
前沿探索:按照本书的内容规划,对前沿技术方向与内容从广度层面进行剖析和介绍,以开阔读者的思路和眼界。前沿内容散布于各个章节,与各章节主题互相映衬。
原理、案例相结合:立足原理,对分布式数据库的架构进行深度剖析,并对业界多个产品从问题、原理、前沿技术研究成果、架构相关因素等角度进行深度分析。用多个案例多样化地印证其他部分介绍的原理和前沿技术。
本书面向的主要读者
分布式数据库的设计者和开发者;
分布式数据库前沿技术的研究者;
其他对分布式数据库感兴趣的读者。
如何阅读本书
本书没有涉及编程实现的细节,而是从整体上对分布式数据库一致性等重要问题逐步展开介绍。全书分为三篇——原理、架构和典型案例。其中原理篇对经典的分布式数据库理论和技术进行剖析。
基于原理篇,架构篇从两个角度对分布式数据库架构进行剖析:一是影响数据库内核设计的理念(第5章);二是影响数据库架构设计的外在环境(第6章)。这两个方面的内容可帮助读者深入理解数据库内核的框架结构及设计思想。
典型案例篇则结合原理,对部分经典的分布式数据库系统展开讨论,以帮助读者把理论和实践相结合。阅读案例时,如能时时重温原理篇的内容,则学习效果更佳。
本书不仅给出了大量的参考文献及其概述,还将这些参考文献和本书内容相结合,两者相互印证,进而使本书内容更充实。限于篇幅,书中不可能对所有内容都充分展开,所以如果您期望更加深入地掌握和理解相关内容,可进一步阅读相应参考文献。
资源及勘误
由于笔者的水平有限,书中难免存在错误,若您在阅读时发现任何问题,都可发送电子邮件到database_XX@163.com,笔者不胜感谢。有了您的帮助和支持,本书定能更加完善。由于时间有限,也许笔者不能一一回复所有的电子邮件,但是一定会定期整理并汇总信息到华章网站(http://www.hzbook.com)本书的页面下。
致谢
在多年的研究和实践工作中,承蒙中国人民大学杜小勇教授的悉心指导,笔者获益良多,本书能面世也与杜教授的指导息息相关,在此深表感谢。另外,要特别感谢杜教授在百忙之中抽出时间,专门为本书作序。
本书承蒙武汉大学彭智勇教授、易鲸捷信息技术有限公司CEO武新博士、CSDN创始人兼董事长蒋涛先生作序推荐,在此致以诚挚的感谢。
感谢笔者的父母、妻女。笔者倾注于写作本书的时光,本应是陪伴亲人们的岁月,笔者因此愧疚不已。
感谢机械工业出版社华章分社编辑杨福川先生和孙海亮先生为本书付出的努力与耗费的心血,笔者出版了数本书,都得到他们无私、有价值的帮助。
感谢每一位读者,读者的口碑促使笔者不断努力,每一位读者都是笔者继续进步的不竭动力。期待本书对读者有所帮助。

李海翔

上架指导

计算机\数据库

封底文字

海翔对Spanner、Percolator、CockroachDB等多个分布式数据库系统进行了深入分析,对其中的一些核心技术有了较深的理解。在此基础上,他对分布式数据库的一些原理进行了梳理,特别是对“一致性”的概念进行了系统的研究,厘清了分布式计算中的一致性(CAP的C)和数据库系统中的事务一致性(ACID的C)的区别和联系。他还深度研究和实践了高可用分布式数据库的架构设计、主流并发访问控制算法等。这些都是很有价值的工作。
——杜小勇 博士 中国人民大学教授/中国计算机学会大数据专家委员会主任

本书作者长期从事数据库研究与开发工作,这是他继《数据库查询优化器的艺术》和《数据库事务处理的艺术》之后又一部集原理、架构与实践于一体的分布式数据库力作,非常值得数据库学术界和产业界人士参考,也是高校学生学习分布式数据库技术很好的教材。
——彭智勇 博士 武汉大学教授/中国计算机学会会士/数据库专家委员会副主任

本书的内容涵盖了分布式技术领域和分布式OLTP数据库领域近年理论研究和技术实现原理,无论是数据库内核的资深开发者、进阶者,还是分布式数据库的应用开发者,甚至包括开设了数据库课程的同学们,阅读本书都会有很大收获。这是一本分布式数据库领域近几年值得推荐的好书。
——武新 博士 易鲸捷信息技术有限公司 CEO

很高兴看到国内有这样的一线专家著书分享关于分布式数据库的新核心技术、原理,设计思想和架构。相信本书的出版会激发更多的开发者深入研究数据库基础核心技术,未来帮助中国成为全球技术的领先者。
——蒋涛 CSDN创始人、董事长/ 极客帮创投创始合伙人

作者简介

李海翔 著:放排好版的宣传语和目录

图书目录

序一
序二
序三
序四
前言
第一篇 原理
第1章 分布式数据库系统的
挑战和原理 3
1.1 分布式数据库系统的挑战 3
1.1.1 分布式系统面临的问题 4
1.1.2 数据库面临的一致性问题 7
1.1.3 分布式数据库系统面临的问题 15
1.2 分布式理论 20
1.2.1 ACID、BASE与CAP简析 21
1.2.2 CAP分布式理论 23
1.2.3 PACELC理论和CAP新进展 29
1.3 分布式系统一致性的本质 30
1.3.1 偏序与全序 30
1.3.2 有序与并发 31
第2章 深入研究一致性 33
2.1 概述 34
2.1.1 常见的分布式一致性 35
2.1.2 科研情况一览 38
2.2 结果一致性 41
2.2.1 共识问题形象化描述:拜占庭将军问题 42
2.2.2 结果一致性的应用 42
2.3 次序一致性 43
2.3.1 线性一致性 43
2.3.2 顺序一致性 47
2.3.3 因果一致性 47
2.3.4 会话一致性 48
2.4 分布式事务一致性 49
2.4.1 单机事务的一致性 49
2.4.2 分布式事务的一致性 52
2.4.3 分布式一致性与分布式事务一致性的关系 52
2.5 架构一致性 54
2.5.1 分布式系统主备一致性 54
2.5.2 去中心化的分布式系统一致性 55
第3章 一致性问题的解法 56
3.1 依赖物理时间引发的问题 56
3.2 逻辑时钟 57
3.2.1 因果(happened-before)模型 57
3.2.2 逻辑时钟的实现 58
3.2.3 逻辑时钟的缺点 58
3.2.4 物理时钟与同步问题 59
3.3 向量时钟 59
3.4 混合逻辑时钟 61
3.5 Paxos协议 64
3.5.1 Paxos协议解决问题的背景 64
3.5.2 Paxos协议中的角色 64
3.5.3 Basic Paxos协议 66
3.5.4 Paxos协议改进与扩展 67
3.6 Raft算法 74
3.6.1 Raft算法基础 74
3.6.2 Raft算法详解 75
3.6.3 Paxos算法与Raft算法的比较 78
第4章 分布式事务原理 81
4.1 概述 82
4.1.1 单机事务处理技术 82
4.1.2 分布式事务处理技术 85
4.2 基本的分布式事务并发访问控制机制 89
4.2.1 封锁并发访问控制算法 90
4.2.2 TO相关算法 91
4.2.3 CO算法 92
4.3 OCC算法 95
4.3.1 OCC算法的优势与不足 95
4.3.2 基本的OCC算法 97
4.3.3 改进的OCC算法 103
4.3.4 OCC算法与其他并发算法的融合 110
4.3.5 分布式OCC算法 117
4.4 MVCC技术 121
4.4.1 MVCC技术解决了
什么问题 122
4.4.2 MVCC技术的核心思想 123
4.4.3 可串行化的快照隔离 124
4.4.4 写快照隔离 128
4.4.5 MVCC技术实现示例 132
4.4.6 MVCC技术扩展 139
4.5 前沿的并发控制技术 140
4.5.1 动态调整时间戳算法 140
4.5.2 Data-driven算法 145
4.5.3 面向列的细粒度机制 148
4.5.4 基于硬件的改进 149
4.5.5 基于AI的改进 153
4.5.6 自适应并发访问控制算法 155
4.6 分布式提交技术 159
4.6.1 两阶段提交 159
4.6.2 三阶段提交 163
4.6.3 基于Paxos的提交 164
4.6.4 一阶段提交 166
4.7 可串行化发展历史 166
4.8 其他分布式处理技术 169
第二篇 架构
第5章 去中心化的分布式数据库架构 175
5.1 分布式存储架构 175
5.1.1 数据分布 176
5.1.2 数据管理 177
5.1.3 多副本与数据存储 179
5.1.4 存算分离 180
5.1.5 多读与多写 184
5.2 分布式查询优化与并行执行架构 187
5.2.1 查询优化 187
5.2.2 MPP 188
5.2.3 计算下推/外推 189
5.3 高可用性架构 190
5.3.1 高可用衡量指标 191
5.3.2 高可用性分类 194
5.3.3 高可用事务 195
5.3.4 高可用架构 197
5.4 分布式事务架构 198
5.4.1 事务管理器在客户端、中间件、服务器端中的实现 198
5.4.2 去中心化的并发事务框架 201
5.5 可扩展性架构 202
5.5.1 可扩展性是一种能力 202
5.5.2 事务处理的可扩展性 204
5.6 强一致性 206
5.7 解耦 206
第6章 新技术与分布式数据库架构 210
6.1 新硬件 210
6.2 智能数据库 211
6.3 云计算与数据库 213
6.3.1 云原生 214
6.3.2 云数据库 216
6.3.3 Serverless数据库 217
6.4 HTAP 218
6.4.1 HTAP概念与HTAC架构 218
6.4.2 行列混存 220
6.5 下一代数据库 221
6.5.1 数据库技术简史 221
6.5.2 下一代数据库技术特征 228
第三篇 典型案例
第7章 Spanner深度探索 233
7.1 从Spanner的两篇重点论文说起 233
7.2 Spanner的架构 234
7.3 Spanner的事务处理模型 236
7.3.1 读事务的分类和意义 237
7.3.2 分布式一致性实现原理 237
7.3.3 写操作一致性的实现原理 239
7.3.4 Truetime事务处理机制的缺点 241
7.3.5 深入理解Spanner的悲观策略 242
7.3.6 Spanner与MVCC 243
7.3.7 读副本数据 244
7.3.8 全局读事务的一致性 244
7.3.9 只读事务 245
7.4 Spanner与CAP 246
第8章 Percolator事务处理模型 247
8.1 Percolator的架构 247
8.2 Percolator的事务处理 248
8.2.1 事务处理整体过程 248
8.2.2 数据项上存储的事务信息 249
8.2.3 事务提交过程 249
8.2.4 事务读数据过程 252
8.2.5 Percolator的事务处理示例 253
第9章 CockroachDB深度探索 255
9.1 CockroachDB的架构 255
9.2 CockroachDB事务处理模型 257
9.2.1 事务处理相关的数据结构 258
9.2.2 事务处理的阶段 259
9.2.3 事务处理的整体过程 260
9.2.4 事务的并发冲突 261
9.2.5 事务自动终止 264
9.2.6 隔离级别 265
9.3 分布式一致性实现原理 265
第10章 其他数据库 267
10.1 内存型数据库Hekaton的事务处理机制 267
10.1.1 Hekaton的技术架构 267
10.1.2 Hekaton的事务管理 271
10.1.3 Hekaton的并发控制 275
10.2 文档型分布式数据库MongoDB 276
10.2.1 MongoDB的架构 277
10.2.2 MongoDB的事务处理技术 277
10.3 列存分布式数据库HBase 278
10.3.1 HBase的架构 278
10.3.2 HBase的事务处理技术 279
10.4 Greenplum 280
10.5 图、键值、文档事务处理技术 282
10.5.1 图模型事务处理技术 283
10.5.2 键值、文档模型事务处理技术 284
10.6 深入讨论数据库架构 285
10.6.1 数据库的通用架构 285
10.6.2 事务型数据库的架构 286
10.6.3 主流分布式数据库的技术比较 290
参考文献 292

教学资源推荐
作者: Rebecca M.Riordan
作者: 郭晓平 朱鸣华 著
作者: [美]拉姆什·沙尔达(Ramesh Sharda) 杜尔森·德伦(Dursun Delen)埃弗瑞姆·特班(Efraim Turban) 著
作者: (美)Jiawei Han伊利诺伊大学厄巴纳-尚佩恩分校 (加)Micheline Kamber西蒙-弗雷泽大学 (加)Jian Pei西蒙-弗雷泽大学 著
参考读物推荐
作者: 嬴图团队 著
作者: Sumit Sarin 钟鸣 孙登峰
作者: [美]史蒂文·西姆斯克(Steven Simske) 著
作者: Michael J.Corey