分布式数据库是分布式计算与数据库结合的产物。分布式数据库的概念早就存在,但是直到最近才真正引起产业界的高度重视。这得益于互联网和云计算技术的高速发展与广泛应用。

以“国家政务服务平台”为例,据称其实现了统一身份认证服务、统一证照服务、统一事项服务、统一好差评等体系。平台的数据不是集中存储的,而是分散存储在全国多个数据中心的多个数据库系统中,而且许多“事项服务”类应用还会要求跨域、跨库访问。这个系统刚刚起步,提供的服务还很有限。可以想象,随着这个系统汇聚的数据越来越多,支持的应用越来越丰富,数据的一致性问题、系统的效率问题等都会显现出来。更进一步,这个系统由于支撑着日常的行政服务,对高可用性还会提出更高的要求。凡此种种,都需要分布式数据库技术的支持。分布式数据库将会越来越重要。

在分布式数据库领域体系化的、深入剖析数据库原理的书籍,《分布式数据库原理、架构与实践》是作者李海翔老师基于对该领域多年的科研和实践,历经数年,把对分布式数据库领域一些重要技术的理解和在实践中所得的经验整理成册。从原理、架构、案例三个维度深度剖析分布式数据库所涉一致性、高可用性等。

腾讯T14级数据库专家的分布式数据库解决方案

底层原理·架构设计·产品解读

学术研究·经典理论·一线实践

本书主要讨论如下3个话题。

  • 分布式数据库中存在的问题和原理。科学研究,始于问题。本书首先对分布式数据库技术中一些典型问题进行分析,以明确本书所要研究和解决问题的技术方向。之后讨论CAP原理与ACID技术结合后的一些问题(重点是一致性问题)及技术,以及业界在这方面的科研成果和工程实现思路。

  • 分布式数据库架构。从分布式数据库架构的角度,讨论影响架构的内在、外在技术因素,内在因素如强一致性、高可靠性、高可用性,外在因素如云计算、Serverless需求等。

  • 分布式数据库案例实践。从工程实践的角度,以案例的形式讨论诸多分布式系统的实现技术,涉及的数据库包括Spanner、CockroachDB、HBase、Greenplum等。

主要特色

本书以前沿技术和工程实践为抓手,通过问题确认、原理阐述、架构剖析、实例分析,有深度地进行了以下三项工作。

  • 深入经典技术:对经典技术进行深度探索,如剖析CAP原理的发展过程,深度解读事务处理技术(如MVCC、OCC、DTA等技术)的发展和相关研究。

  • 前沿探索:按照本书的内容规划,对前沿技术方向与内容从广度层面进行剖析和介绍,以开阔读者的思路和眼界。前沿内容散布于各个章节,与各章节主题互相映衬。

  • 原理、案例相结合:立足原理,对分布式数据库的架构进行深度剖析,并对业界多个产品从问题、原理、前沿技术研究成果、架构相关因素等角度进行深度分析。用多个案例多样化地印证其他部分介绍的原理和前沿技术。

读者对象

本书面向的主要读者

  • 分布式数据库的设计者和开发者;

  • 分布式数据库前沿技术的研究者;

  • 其他对分布式数据库感兴趣的读者。

讲了什么

对现代分布式数据库(CAP+传统分布式数据库)的分布式一致性和事务一致性进行本质分析,通过梳理CAP、一致性协议、分布式事务原理指导数据库架构设计,并以拆解主流产品的方式介绍落地方法

(1)CAP与ACID结合:引发的问题,业界科研成果,工程实现

(2)多种角度探讨一致性:分布式一致性(结果一致性、次序一致性、分布式事务一致性、架构一致性),事务一致性

(3)一致性解决方案:逻辑时钟、向量时钟、混合逻辑时钟、Paxos协议、Raft算法

(4)分布式事务原理:并发访问控制、OCC算法、MVCC技术、分布式提交

(5)分布式数据库设计:近10种典型架构实现,内外因素影响下的架构实现,数据库解耦与重构

(6)典型案例分析:Spanner、Percolator、CockroachDB、Hekaton、Mongo、HBase、Greenplum

有什么不同

(1)直指分布式问题本质:从底层原理角度分析各种问题的根因。

(2)通过经典理论寻找解决方案:用从经典理论入手寻找因分布式引入的问题的解决方案。

(3)吸收50年数据库研究成果:借鉴了自20世纪70年代至今的近300份数据库领域专著和文献。

(4)通过案例指导分布式落地实践:立足原理剖析问题,结合产品指导实践。

(5)20年一线实践经验:融合作者在腾讯、甲骨文MySQL全球开发团队20余年数据库研发经验。

作者简介

李海翔

腾讯金融云数据库首席研究员(T14)

腾讯TDSQL分布式数据库首席架构师

中国人民大学、北京林业大学特聘硕士导师

数据库事务处理之数据异常体系化研究的创立者

《数据库查询优化器的艺术》《数据库事务处理的艺术》作者

在VLDB等数据库大会上发表论文多篇参与了多个国家863重大专项、核高基、工信部、科技部等的项目。

大咖推荐

海翔对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

上下滑动查看

实拍图

点击链接了解详情并购买

扫码关注【华章计算机】视频号

每天来听华章哥讲书

更多精彩回顾

书讯 | 10月书讯(上) |  小长假我读这些新书

书讯 | 10月书讯(下) |  小长假我读这些新书

资讯 | 什么是ETL?一文掌握ETL设计过程

书单 | 8本书助你零基础转行数据分析岗

干货 | 架构设计的新思路,《架构之道》读书笔记

收藏 | 终于有人把微服务讲明白了

上新 | 【新书速递】构建高质量软件:持续集成与持续交付系统实践

赠书 | 【第78期】学习全球最火编程语言Python,要读哪些书?

点击阅读全文购买

【新书速递】从原理、架构、案例三个维度深度剖析分布式数据库相关推荐

  1. 【新书速递】解决方案架构师修炼之道

    技术领域的发展日新月异,IT专业人员为了自身的职业发展,必须与时俱进地掌握新技能.然而,在过去的十年中,这种快速变化的趋势已经在云计算领域中占据主导地位,成为"新常态".现在,几乎 ...

  2. 【新书速递】实用安全多方计算导论

    安全多方计算(MPC)是解决数据安全与隐私保护问题的关键安全数据交换技术,近年来发展迅速,但由于MPC涉及复杂的密码学和工程实现技术,行业长期缺乏同时具备MPC研究.应用和实现能力的综合性人才,这阻碍 ...

  3. 【新书速递】分布式事务开山之作,带你深入理解分布式事务

    随着互联网的不断发展,互联网企业的业务在飞速变化,推动着系统架构也在不断地发生变化.总体来说,系统架构大致经历了 单体应用架构→垂直应用架构→分布式架构→SOA架构→微服务架构的演变.如今微服务技术越 ...

  4. 【新书速递】程序员必会的40种算法

    算法是计算科学的核心,在求解实际问题的过程中发挥着重要作用.程序员.算法设计师.架构师.数据分析师等信息技术相关从业人员都应学习算法设计基础知识,积累基础算法,掌握典型的机器学习算法.自然语言处理算法 ...

  5. 【新书速递】高效使用Greenplum

    Greenplum数据库是基于MPP架构的开源大数据平台,具有良好的弹性和线性扩展能力,内置并行存储.并行通信.并行计算和并行优化功能,兼容SQL标准,具有强大.高效的PB级数据存储.处理和实时分析能 ...

  6. 【新书速递】应用上云成必然趋势,“安全左移”是云原生安全的必经之路?...

    云计算一经走向市场,就迅速呈现出强大的生命力.随着大数据时代的到来,云计算成为大数据的承载平台,"云计算+大数据+人工智能"成为新基建的核心.云计算也因大数据.人工智能的不断发展而 ...

  7. 【新书速递】流量运营教科书

    在互联网时代,流量运营是企业的核心运营内容之一,包括流量获取和流量转化两个环节.前者负责把外部流量引入企业内部,后者负责转化流量并达成企业目标.<电商流量数据化运营>内容侧重于前者,通过数 ...

  8. 【新书速递】评分卡建模红宝书,夯实智能风控底座

    近些年来,智能风控技术在金融风险管理中的应用越来越广泛.智能风控利用金融大数据.机器学习.深度学习.强化学习.时序数据分析.异常检测.社交网络分析.图深度学习.知识图谱.自然语言处理.文本挖掘等智能分 ...

  9. 【新书速递】字节跳动、360的智能硬件产品经验总结

    近年来,互联网产品从0到1变得越来越简单,入行的门槛也越来越低.当下,硬件的制造成本变得越来越低,人工智能.5G.大数据.云计算等高新技术逐步成熟,结合了硬件和高新技术的IoT.AIoT等领域逐渐得到 ...

最新文章

  1. 如何给页面加上loding_如何给片头添加字幕?视频剪辑大神们都这样玩
  2. 人民广场怎么走? 地铁换乘算法的实现 MikeTech | MikeTech
  3. LeetCode Reverse Nodes in k-Group(单链表连续分段反转)
  4. PyTorch nn.Module 一些疑问
  5. MySQL性能突发事件问题排查技巧
  6. iBatis 2.x 和 MyBatis 3.0.x 的区别
  7. Minor GC和Major GC和Full GC
  8. Mac安装MATLAB 2017b
  9. mysql 字段加减_Mysql数据清洗—Null值的处理技巧
  10. Android应用程序键盘(Keyboard)消息处理机制分析(19)
  11. 4号线地铁站点列表_7/4号线大连路地铁站:合租主卧家具齐全~
  12. Listen1 - 让你畅享全网音乐!你值得拥有!
  13. Unity手势插件FingerGestures
  14. Android仿支付宝提现
  15. 如何降低疾病监测的漏诊比率?一种新的分类学习算法
  16. 7时过2小时是几时_一个时辰等于几个小时
  17. 微信群对服务器的要求,微信群运营必看:运营微信群必做的7点要求
  18. STM32之TIM1高级定时器
  19. 1.2 二维三维空间向量组的线性组合
  20. cocos2d - JS 物理引擎 - chipmunk

热门文章

  1. 【Unity教程】如何动态更换精灵图片在图集中更换精灵图片
  2. Rocket之nameServer
  3. Linux各发行版的前世今生
  4. 阿朵洒洒的撒多撒多撒啊
  5. f2fs学习笔记 - 7. f2fs文件打开
  6. 2.Cocos跑酷游戏——工具篇 Dictionary
  7. c语言实验报告中致谢词,实验报告致谢词范文.doc
  8. android汉字所占内存
  9. 解决Echarts的toolbox只显示英文的问题
  10. 深入浅出理解什么是HTAP