描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121421655
阿里云智能事业群总裁、达摩院院长张建锋,中国工程院院士陈左宁,中国科学院院士梅宏倾情作序!
阿里云智能数据库事业部总负责人李飞飞博士,华东师范大学数据科学与工程学院副院长周烜教授,领衔撰写!
阿里云数据库领域数十年的研发实践经验结晶
兼具理论深度和实践细节,启发深入思考
开放性地探索数据库前沿发展方向
诠释云原生分布式数据库4大核心技术:资源池化、弹性扩展、智能运维和离在线一体化
详解未来数据库发展6大趋势:云原生与分布式、大数据与数据库一体化、软硬件一体化、多模数据、智能化运维、安全可信
本书详细剖析了作为核心基础软件系统的数据库在云计算时代的技术演进历程,从架构设计、实现机制和系统优化等多个角度阐述传统数据库技术是如何一步步发展到云原生形态的。本书强调理论和实践的充分结合,分析MySQL、PostgreSQL等工业界“活”的系统实现数据库的SQL优化与执行、事务处理、缓存与索引等原理,在面对实际应用需求时做了哪些权衡与折中,面对复杂的应用场景如何优化,以及做出种种选择背后的原因。同时,本书结合阿里云在数据库领域的研发实践经验,着重讲述现代数据库从系统进化到服务的一系列核心技术原理,例如利用云计算资源池化技术、分布式技术实现数据库的高可用、弹性扩展和按需使用等。
本书内容翔实,兼具理论深度和实现细节,同时开放性地探索了数据库的新发展方向,能够启发读者进一步深入思考。本书可作为高等院校信息类专业的本科生和硕士研究生教材,也可作为数据库行业的内核研发和系统运维等从业人员的参考书。
目 录
第1章 数据库发展历程 1
1.1 数据库发展概述 2
1.1.1 萌芽 2
1.1.2 商业化起步 3
1.1.3 发展成熟 3
1.1.4 云原生与分布式时代 4
1.2 数据库技术发展趋势 6
1.2.1 云原生与分布式 6
1.2.2 大数据与数据库一体化 6
1.2.3 软硬件一体化 7
1.2.4 多模 7
1.2.5 智能化运维 8
1.2.6 安全可信 8
1.3 关系数据库主要技术原理 8
1.3.1 接入管理 9
1.3.2 查询引擎 10
1.3.3 事务处理 14
1.3.4 存储引擎 17
参考文献 19
第2章 数据库与云原生 20
2.1 数据库在云时代的发展 21
2.1.1 云计算时代的兴起 21
2.1.2 数据库作为一种服务 22
2.2 数据库在云原生时代面临的挑战 23
2.3 云原生数据库的主要特点 24
2.3.1 分层架构 24
2.3.2 资源解耦与池化 24
2.3.3 弹性伸缩能力 24
2.3.4 高可用与数据一致性 25
2.3.5 多租户与资源隔离 26
2.3.6 智能化运维 26
参考文献 26
第3章 云原生数据库架构 27
3.1 设计理念 28
3.1.1 云原生数据库的本质 28
3.1.2 计算与存储分离 29
3.2 架构设计 30
3.3 典型的云原生数据库 31
3.3.1 AWS Aurora 31
3.3.2 PolarDB 37
3.3.3 Microsoft Socrates 40
参考文献 44
第4章 存储引擎 45
4.1 数据组织 46
4.1.1 B 树 47
4.1.2 InnoDB引擎中的B 树 49
4.1.3 LSM-tree 52
4.2 并发控制 56
4.2.1 基本概念 56
4.2.2 锁方法 56
4.2.3 时间戳方法 58
4.2.4 MVCC 61
4.2.5 InnoDB MVCC的实现 63
4.3 日志与恢复 65
4.3.1 基本概念 65
4.3.2 逻辑日志 66
4.3.3 物理日志 66
4.3.4 恢复原理 67
4.3.5 MySQL的Binlog 68
4.3.6 InnoDB的物理日志 68
4.4 新型LSM存储引擎 70
4.4.1 PolarDB X-Engine 70
4.4.2 高性能事务处理 72
4.4.3 软硬结合优化 75
4.4.4 低成本分层存储 78
4.4.5 双存储引擎技术 84
4.4.6 实验评估 85
参考文献 88
第5章 高可用共享存储系统 89
5.1 高可用基础 90
5.1.1 Primary-Backup 90
5.1.2 Quorum 92
5.1.3 Paxos 93
5.1.4 Raft 95
5.1.5 Parallel Raft 98
5.2 集群高可用 100
5.2.1 MySQL集群高可用 100
5.2.2 PolarDB高可用 103
5.3 共享存储架构 116
5.3.1 Aurora存储系统 117
5.3.2 PolarFS 119
5.4 文件系统优化 121
5.4.1 用户态I/O计算 121
5.4.2 近存储计算 124
参考文献 130
第6章 数据库缓存 131
6.1 数据库缓存简介 132
6.1.1 数据库缓冲作用 132
6.1.2 缓冲池 132
6.2 缓存恢复 133
6.2.1 云环境对缓存的挑战 133
6.2.2 基于CPU与内存分离的缓存恢复 133
6.3 PolarDB的实践 135
6.3.1 缓冲池的优化 135
6.3.2 数据字典缓存和文件系统缓存的优化 140
6.3.3 基于RDMA的共享内存池 141
参考文献 146
第7章 计算引擎 147
7.1 查询处理概述 148
7.1.1 数据库查询处理概述 148
7.1.2 并行查询概述 149
7.2 查询执行模型 151
7.2.1 火山模型 151
7.2.2 编译执行模型 152
7.2.3 向量化执行模型 152
7.3 查询优化概述 153
7.3.1 查询优化整体介绍 153
7.3.2 逻辑查询优化 153
7.3.3 物理查询优化 154
7.3.4 其他优化方法 154
7.4 PolarDB查询引擎实践 155
7.4.1 PolarDB的并行查询技术 155
7.4.2 PolarDB的执行计划管理 168
7.4.3 PolarDB的向量化执行 175
参考文献 178
第8章 云原生与分布式融合 179
8.1 分布式数据库的基本原理 180
8.1.1 分布式数据库架构 180
8.1.2 数据分区 181
8.1.3 分布式事务 183
8.1.4 MPP并行查询处理 187
8.2 分布式与云原生 188
8.2.1 共享存储架构 189
8.2.2 无共享存储架构 189
8.3 云原生分布式数据库 PolarDB-X 190
8.3.1 架构设计 190
8.3.2 拆分方式 191
8.3.3 全局二级索引 192
8.3.4 分布式事务 193
8.3.5 HTAP 193
参考文献 194
第9章 云原生数据库PolarDB 应用实践 195
9.1 创建云上实例 196
9.2 数据库接入 198
9.2.1 相关账号的创建 198
9.2.2 图形化访问 198
9.2.3 连接方式访问 199
9.3 基本操作 202
9.3.1 数据库与表创建 202
9.3.2 创建测试数据 203
9.3.3 账号与权限管理 204
9.3.4 数据查询 205
9.4 云上数据迁移 208
9.4.1 云上数据的迁入 208
9.4.2 云上数据的导出 211
第10章 PolarDB运维管理 212
10.1 数据库运维概述 213
10.2 扩展资源 213
10.2.1 系统扩展 213
10.2.2 手动升降配 213
10.2.3 手动增减节点 214
10.2.4 自动升降配和增减节点 214
10.3 备份与恢复 215
10.3.1 备份 215
10.3.2 恢复 217
10.4 监控与诊断 218
10.4.1 监控与报警 218
10.4.2 诊断与优化 218
参考文献 220
推荐序一
云原生数据库正在成为一种重要的数据库新形态,预计到2022年,75%的数据库会被直接部署或向云上迁移。阿里云数据库产品不仅支撑着全世界规模的高并发、低延迟电商环境,为上千万家中小企业的在线商业数据提供一站式全链路的在线数据管理与服务,而且还为政务、制造、金融、通信、海关、交通和教育等重点行业提供稳定可靠的数据存储、处理与分析服务。目前,阿里云数据库产品已服务企业用户超过10万家,让企业级数据库服务唾手可得,帮助大量的传统数据库客户大幅降低了成本,提升了运营效率,创造了新的业务场景和价值。
由于阿里电商业务对数据库庞大的并发吞吐和数据计算的需求,阿里云早在2010年就全面开展了数据库的自主研发,攻克存储计算分离、分布式、高可用、兼容性、离在线一体化、HTAP等关键技术,并针对双11等高并发业务场景进行设计和优化,持续升级内核能力和集群架构。同时,针对国产芯片及操作系统开展优化,为全面使用国产化技术栈,完全的自主可控打下基础。在这个过程中,阿里云数据库获得了世界互联网大会全球领先科技成果奖、浙江省科技进步一等奖、中国电子学会科技进步一等奖等,也成为首个进入Gartner全球数据库领导者的中国数据库厂商。
站在云计算时代际遇面前,阿里云愿意携手广大合作伙伴和开发者,一起发展云原生数据库技术,打造完善的产业生态,加速全社会数字化转型进程。
张建锋
阿里云智能事业群总裁,达摩院院长
推荐序二
数据库是计算机科学领域重要的基础系统之一,同时也是承载数字经济发展的基础系统软件,具有举足轻重的战略地位。充分有效地管理和利用各类数据资源,是进行科学研究和决策管理的前提条件,在数字经济时代尤为关键。传统数据库市场主要由大型商业数据库厂商所占据,并已经形成较为完善的数据库生态。数据库存储和处理着用户核心的数据资源,用户粘性高,迁移难度大。由于数据库生态的高度垄断,我国数据库系统在商业市场中竞争力面临很大的挑战。当前国家正在大力推进基础技术领域的创新突破战略,明确提出大力发展基础软件和高端信息技术服务,加快发展面向大数据应用的数据库系统。在这个背景下,数据库系统不应是简单的存量市场替代,更应是升级创新,适应云计算和大数据、AI等新的市场需求,从可用发展到好用。
云计算等技术的快速发展,带动了各类基础软件开始云化转型之路,企业正将新应用向云转移,对数据存储和计算分析的能力要求不断加强,云原生数据库天然具备云上的弹性,灵活性,高可用性等特点,能够提供强大的创新能力、丰富多样的产品体系、经济高效的部署方式和按需付费的支付模式。云原生分布式数据库成为一个数据库领域创新突破的重大机会,数据库云化趋势为数据库从业者提供了新的赛道。
数据库的云化经历了两个阶段,一是云托管,将原有数据库系统部署在云平台上,将数据库服务化,按需购买;二是云原生,利用云化的资源池化特点完全重构数据库的层次结构,使计算、存储、网络等资源彻底解耦,更充分灵活的利用资源池的弹性来适应业务的变化。后一个阶段对数据库的改造更为彻底,更具创新的深度和潜力,”云原生数据库:原理与实践”正是面向这一趋势应运而生的一本书。本书的主要作者李飞飞博士先是从事数据库领域的学术研究工作十余年,近年又投身工业界,潜心于数据库系统的研发,融合了理论前沿和工程实践经验,反映在这本数据库教材中,既有翔实的理论基础,也有丰富的技术实现细节,对云原生数据库的重点技术,如存储计算分离,高可用,存储引擎,分布式查询引擎,数据水平分布与自动负载均衡等都做了深入细致的分析,相信会对广大读者学习业界的数据库技术提供帮助。
信息基础技术领域的自主创新对信息化建设意义重大,此一任务任重道远,远非一朝一夕之功,也需要整个社会形成共识,辅以全局产业链的密切合作。惟有持之以恒,不断努力抓住时代发展提供的每一个机遇,方能成功。希望此书能为广大从业者在技术探索之路上带来一些启发,为建设新型的数据库系统做出贡献。
陈左宁
中国工程院院士
推荐序三
数据库管理系统是计算机科学技术领域重要的系统软件之一,更是各类信息系统不可或缺的基础性平台,其主要任务是对数据的归集、分类、组织、处理、存储、分析、应用的全生命周期提供共性技术支撑。可以说,没有数据库管理系统,就没有各行各业的信息化。自20世纪70年代开始商业化以来,数据库管理技术得到了长足发展,其中关系数据库以其简洁的概念体系和良好的抽象、强大而通用的表达能力以及对事务的一致性保障奠定了其在信息化中的主导地位,成为数据管理技术的“事实标准”。
互联网的大规模商用极大加速了数据的产生、流通和汇聚,给数据管理带来了一系列新需求和新挑战:数据规模的指数级增长使得更多的数据需要管理,数据类型的日渐丰富亟需更灵活多样的数据模式;互联网作为信息化的基础设施,各类应用面临更大规模的数据吞吐量、更大规模的并发访问以及更短的检索响应时间;互联网的无地域限制也要求业务系统不间断地提供服务,对数据库的多点高可用以及可扩展性带来了更高要求;如此,等等。这些新特征和新场景开启了数据库技术的一轮变革,催生了大量创新数据库技术和产品。其中,分布式技术的融入成为主要特点,带来了良好的扩展性和高可用能力,可以有效应对大规模数据处理与存储分析的需求。
云计算模式开启了互联网应用的新阶段,计算和存储的能力以随取随用的服务形式提供给用户,基础设施服务化之外,更是各类底层平台技术,包括数据库、中间件等的服务化,以及应用软件的服务化。云计算触发了数据库技术的又一轮变革,在分布式技术应用的基础上,需要充分利用云平台资源池的弹性能力,将数据库的计算和存储分层解耦,按应用负载提供实时弹性伸缩、全域多点可用的数据库服务。这一变革不仅是技术上的演进,也是商业模式的更新,可以为用户提供易于使用、高性价比、弹性伸缩的高可用数据库服务。由此,带来了对云原生数据库的需求。
利用云原生技术重构数据库系统,同时顺应了技术发展趋势和市场需求。李飞飞博士领衔编写的这本教材对云原生技术与数据库的结合进行了系统性阐述,回顾了数据库管理系统的历史发展脉络以及各个重要阶段的主要技术特征,梳理了数据库技术的走向及其发展到云原生形态的历程。该书在对数据库技术发展趋势做出详细分析的基础上,自底向上拆解数据库系统的技术栈,分别讲解分层解耦后的共享存储系统、存储引擎、查询引擎等部件的实现,重点阐述云原生、分布式、高可用、软硬结合等新技术如何融入并拓展数据库系统的能力,详解了使用和运维云数据库的实践和操作。全书内容布局有度,循序渐进,原理与实操兼备,适合数据库技术领域从业人士阅读参考。
数据库的云化正在成为一个重要趋势,为数据库管理技术及其相关产业发展带来了新的机遇,同时,也带来了对人才培养的需求。该教材的出版,恰逢其时。是为序。
梅宏
辛丑年孟冬于北京
前言
写作背景
数据库系统是基础系统软件“三驾马车”之一,自诞生以来已发展60余年。关系数据库以其良好的抽象,强大的表达能力,易于使用的SQL语言占据了主流地位。在长达半个世纪的发展过程中,关系数据库的理论和技术都得到了长足发展,相关书籍不计其数,每一部分的技术如SQL解析、优化与执行、事务处理、日志恢复、存储引擎、数据字典等都有详尽分析。然而,数据库技术的日臻成熟并不意味着停止发展,相反,在互联网和大数据日渐兴盛的当下,业务的复杂性、数据模型的多样性、数据规模的爆炸式增长和硬件技术的更新都为这一相对古老的技术注入了新的活力。
互联网应用以前所未有的速度全面重塑了人们的生活方式,大量的数据得以在线化,这些数据需要被存储、分析和消费,承载这些功能的数据库面临的访问量远超以往。互联网应用为适应高度变化的市场,迅速调整其业务形态和模式,也产生了更加灵活丰富的数据模型、频繁变化的负载特征,这些都要求数据库具备弹性伸缩的能力,既可以适应业务的变化,又可以尽可能地降低成本。传统的数据库大多采用单机部署,规格固定,难以满足这些要求。云计算的出现恰逢其时,它把信息化需要的基础设施作为一种服务来提供,建立超大规模的资源池,并在此基础之上提供统一的、虚拟化的抽象界面。利用容器、虚拟化、编排调度和微服务等技术在多样化硬件上建立了一个庞大的操作系统,利用云计算的能力,数据库把固定规格部署的实例变为一种服务,用户可以按需取用,并根据业务变化实时伸缩。
云原生数据库不仅仅是把传统数据库架构在云计算平台上的一种服务,而是要从整体架构上进行彻底的改造,以充分利用云计算平台资源池化的能力,将原本一体运行的数据库拆解,让计算、存储资源完全解耦,使用分布式云存储替代本地存储,将计算层变成无状态(Serverless)。云原生数据库将承载每层服务的资源池化,独立实时地伸缩资源池的大小,以匹配实时的工作负载,使得资源利用率化。
主要内容
本书详细介绍了数据库技术在云计算时代背景下的演进历程,通过具体的实例介绍云原生、分布式等技术是如何让数据库的内涵变得更加丰富的。
第1章回顾了数据库发展的简要历程,并以一条SQL语句的执行过程简要阐述典型关系数据库的结构、重要模块和实现原理。
第2章讲述数据库在云计算时代背景下的发展与变迁,如何从单机数据库进化到云原生分布式数据库。云计算发展对数据库不仅带来了技术上的变化,还有商业模式上的变革,因此本章还探讨了数据库技术的未来可能发展趋势。
第3章主要讲述架构在云平台上的云原生数据库基本架构设计理念,以及设计选择背后的原因。同时分析了目前市场上重要的几个云原生数据库,如AWS Aurora、Aliyun PolarDB、Microsoft Socrates的技术特点。
第4章到第7章分别讲述云原生数据库的几个重要组件,如存储引擎、共享存储、数据库缓存和计算引擎等的实现原理。每章都遵循相同的结构,首先讲述这些模块的理论基础、一般实现方法,然后介绍在云原生数据库中的针对性改进与优化方法。
第8章详细介绍了水平扩展的分布式技术在数据库中的应用、实现原理,以及与云原生技术融合后如何将数据库技术提升到新的水平。
第9章和第10章以PolarDB为例集中介绍云原生数据库应用实践,如何创建云上数据库实例,如何更好地使用和运维,充分发挥云数据库的弹性、高可用、安全和高性价比特性。
主要作者
本书由阿里巴巴数据库产品事业部李飞飞和华东师范大学周烜教授撰写,参与撰写内容的还有周烜团队的蔡鹏教授和张蓉教授,李飞飞团队的资深技术专家黄贵,阿里云副总裁、阿里巴巴达摩院秘书长刘湘雯。阿里云数据库团队的章颖强、王剑英、胡庆达、陈宗志、王宇辉、王波、孙月、庄泽超、应珊珊、宋昭、王康、程训焘、张海平、吴晓飞、吴学强、杨树坤等多位技术专家也提供了重要的技术素材,在此一并致谢。
特别感谢阿里云智能事业群总裁、达摩院院长张建锋,中国工程院院士陈左宁,中国科学院院士梅宏为本书作序。
特别感谢李战怀教授、杜小勇教授、周傲英校长、彭智勇教授、李国良教授、崔斌教授、陈国总经理、周彦伟会长、张文升主席为本书推荐。
感谢阿里巴巴数据库事业部生态与市场负责人胡铭娅所做的组织策划工作。感谢电子工业出版社博文视点宋亚东编辑的组织策划和出版工作。
正是所有人的努力才促成了本书的面世。
由于时间有限,书中不足之处在所难免,恳请广大读者批评指正!
作者
2021年11月
基于云平台提供数据管理服务自然产生了对云原生数据库的需求。本书以作者主持研发的PolarDB为例,从理论到实践,系统地阐述了云原生数据库的原理与技术,语言简洁明快,论述深入浅出,是一本值得一读的好书!
李战怀
西北工业大学教授,中国计算机学会数据库专业委员会主任
云原生数据库是适用于云计算平台的数据库系统,是数据库大家族的新宠。本书作者是云计算和数据库领域的专家,内容具有很高的参考价值。
杜小勇
中国人民大学教授,中国计算机学会大数据专家委员会主任
数据库自20世纪60年代诞生以来,一直被认为是信息社会的关键基础设施。近20年来,互联网的发展和普及深刻地改变世界和人类本身,未来信息社会的形态逐渐明晰,经济社会的数字化转型蓄势待发。数据库遭遇互联网是近10年数据库发展遇到的挑战和机遇,数据库研发因此重焕青春。云原生数据库是数据库遭遇云计算的必然产物,云原生的根本理念是把数据库能力服务化、大众化,把数据库变成公用事业。这是发挥数据威力,为数字化转型提供赋能平台的步。本书系统总结了阿里巴巴集团在云原生数据库方面的探索,从实践中来,到实践中去,相信本书对我们在这一新领域抢占先机大有裨益。
周傲英
华东师范大学教授、副校长,资深数据库学者
云计算平台使得云原生数据库得以兴起和普及。本书从理论和实践两个方面展示了云原生数据库的基本原理和核心技术。作者长期从事数据库理论研究,成果丰硕。他们结合阿里云原生数据库PolarDB的研发经验撰写此书,非常值得仔细研读!
彭智勇
武汉大学教授、大数据研究院副院长,中国计算机学会数据库专业委员会副主任
云原生数据库是数据库领域近10年来的重大革新,引领了数据库的发展。本书详细阐述了云原生数据库的核心技术,例如计算存储分离、日志即数据、弹性多租等,是云原生数据库领域的宝书,值得仔细阅读。本书作者是数据库领域学术界和工业界的卓越代表,书中内容凝聚了对云原生数据库的思考。
李国良
清华大学教授,清华大学计算机系副主任,中国计算机学会数据库专业委员会副主任
云原生数据库可以说是当下火的数据库产品技术形态,具有高扩展性、高可用性等优良特性,相关领域正在蓬勃发展。本书是有关云原生数据库的开创性著作,覆盖了关键理论和技术实现。作者是来自企业界和学术界的资深学者和优秀实践者,强烈推荐给对数据库技术感兴趣的研究生和研发人员。
崔斌
北京大学教授,中国计算机学会数据库专业委员会副主任
数据已成为数字经济的核心生产要素,而数据库是承载数据存储与计算的关键基础软件,对企业业务发展至关重要。信息通信服务商同样高度关注数据库技术的发展。随着云计算和大数据的蓬勃发展,数据库也从传统定制化部署,转型为按需取用、弹性伸缩的云服务,给业务人员带来更多的灵活性和更高的性jia比。李飞飞博士等人所著的《云原生数据库:原理与实践》详细阐释了阿里云数据库在云化过程中的技术发展与实战经验。相信这本书能给各位读者带来启发,更好地实施企业上云,加速数字化转型。
陈国
中移信息技术有限公司副总经理
随着科技的发展和数字化转型的推进,数据作为核心资产,越来越受到重视;而作为数据存储与计算的载体,数据库的发展也日新月异。我把数据库的发展按次序定义为传统数据库、云原生数据库和广义数据库。而当前,云原生数据库正以一种崭新的技术架构大行其道,蓬勃发展,为云计算的落地做出了不可磨灭的贡献。
当很多人还在迷茫什么是云原生时,李飞飞和周烜等几位老师的巨著横空出世,可谓适逢其时。几位老师的理论积累深厚,行业视野高瞻远瞩,对阿里巴巴数据库产品的实践也如指诸掌。在他们的共同努力下,本书对理论概念的讲解和技术实现的描述一气呵成,对文字的把控也游刃有余,非常适合数据库爱好者阅读。期待本书早日面世,泽被大众。
周彦伟
极数云舟创始人&DTark总架构师,中国计算机行业协会数据库专委会会长,浙江大学校外导师
数据库已进入百家争鸣的新时代!谁能在这场角逐中脱颖而出?本书为从业者指明了道路——拥抱云原生。本书理论结合实践,在技术选型方面也着墨较多,凝聚作者们多年的行业经验和心血,引领读者概览云原生数据库的全貌,兼具细节与深度,颇具匠心,当有其所值!
张文升
PostgreSQL中文社区主席,《PostgreSQL实战》《PostgreSQL指南——内幕探索》作者
评论
还没有评论。