云原生数据库:原理与实践
  • 推荐0
  • 收藏1
  • 浏览570

云原生数据库:原理与实践

周恩昌 (作者) 

  • 丛  书:阿里巴巴集团技术丛书
  • 书  号:978-7-121-42165-5
  • 出版日期:2021-12-07
  • 页  数:348
  • 开  本:16(170*240)
  • 出版状态:上市销售
  • 维护人:宋亚东
纸质版 ¥99.00
本书详细剖析了作为核心基础软件系统的数据库在云计算时代的技术演进历程,从架构设计、实现机制和系统优化等多个角度阐述传统数据库技术是如何一步步发展到云原生形态的。本书强调理论和实践的充分结合,分析MySQL、PostgreSQL等工业界“活”的系统实现数据库的SQL优化与执行、事务处理、缓存与索引等原理,在面对实际应用需求时做了哪些权衡与折中,面对复杂的应用场景如何优化,以及做出种种选择背后的原因。同时,本书结合阿里云在数据库领域的研发实践经验,着重讲述现代数据库从系统进化到服务的一系列核心技术原理,例如利用云计算资源池化技术、分布式技术实现数据库的高可用、弹性扩展和按需使用等。
本书内容翔实,兼具理论深度和实现细节,同时开放性地探索了数据库的最新发展方向,能够启发读者进一步深入思考。本书可作为高等院校信息类专业的本科生和硕士研究生教材,也可作为数据库行业的内核研发和系统运维等从业人员的参考书。
阿里云智能数据库事业部总负责人李飞飞博士,华东师范大学数据科学与工程学院副院长周烜教授,领衔撰写!
阿里云智能事业群总裁、达摩院院长张建锋,中国工程院院士陈左宁,中国科学院院士梅宏倾情作序!
阿里云数据库领域数十年的研发实践经验结晶
兼具理论深度和实践细节,启发深入思考
开放性地探索数据库前沿发展方向
诠释云原生分布式数据库4大核心技术:资源池化、弹性扩展、智能运维和离在线一体化
详解未来数据库发展6大趋势:云原生与分布式、大数据与数据库一体化、软硬件一体化、多模数据、智能化运维、安全可信
推荐序一

云原生数据库正在成为一种重要的数据库新形态,预计到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

目录

目 录
第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-01-06

    互联网业务的飞速发展带来急剧膨胀的数据规模,多样化的数据类型、更复杂的业务特征和对数据实时洞察的需求,推动了传统数据库技术向可扩展、高可用、实时弹性等方向发展。 而云计算技术的发展为解决这些问题带来了新方法,大规模资源池化为上层应...

    博文小编 2022-01-06
    191 0 0 0

同系列书

  • 深入分析Java Web技术内幕(修订版)

    《深入分析Java Web技术内幕(修订版)》主要围绕Java Web 相关技术从三方面全面、深入地进行了阐述。首先介绍前端知识,即在JavaWeb 开发中涉及...

    ¥79.00
  • 尽在双11——阿里巴巴技术演进与超越

    阿里巴巴集团双11技术团队 (作者)

    “双 11”,诞生于杭州,成长于阿里,风行于互联网,成就于新经济,贡献于全世界。 从 2009 年淘宝商城起,双 11 已历经八年。每年的双 11 既是当年的...

    ¥49.00
  • 机器学习在线:解析阿里云机器学习平台

    杨旭 (作者)

    以机器学习中的典型案例为主线,条分缕析梳理阿里云的平台功能,讲解如何用阿里云的机器学习平台来实现各类应用,包括商家作弊检测、生存预测、信用风险预测、用户购买行为...

    ¥79.00
  • 大数据大创新:阿里巴巴数据中台业务模式解密

    邓中华 (作者)

    阿里巴巴云上数据中台正服务着阿里生态中的数十个业务板块、百余家公司、千万级客户,在帮助决策层看清甚至决定业态走向的同时,在上万个业务场景中应用并催生创新。<br...

    ¥99.00
  • 企业数字化基石——阿里巴巴云计算基础设施实践

    高山渊 蔡德忠 赵晓雪 刘礼寅 刘水旺 陈义全 徐波 编著 (作者)

    在互联网行业中,云计算基础设施技术具有非常重要的作用与影响,一方面,在电商、金融科技、云计算、大数据、AI等重要战略领域发展的过程中,云计算基础设施技术的重要支...

     

相关图书

Knative最佳实践

Jacques Chester (作者) 赵吉壮 杨云锋 (译者)

本书主要围绕 Knative 进行展开,主要作者是 Knative 专家(社区作者)Jacques Chester ,先后从 Knative 构建、扩缩容、事件...

¥118.00

ATT&CK框架实践指南

过去,入侵检测能力的度量是个公认的行业难题,各个企业得安全负责人每年在入侵防护上都投入大量费用,但几乎没有人能回答CEO 的问题:“买了这么多产品,我们的入侵防...

¥148.00

SequoiaDB分布式数据库权威指南

黄达玮 (作者)

本书旨在介绍 SequoiaDB 巨杉数据库的基本概念、应用场景、企业级应用案例、数据库实例创建与管理方式、数据库集群管理的基本策略、以及性能调优和问题诊断。...

¥99.00

最强iOS和macOS安全宝典

Jonathan Levin (作者) 郑旻 (译者)

《最强iOS和macOS安全宝典》以苹果操作系统的安全为主题,主要面向苹果高级用户、系统管理员、安全研究人员和黑客。<br>本书主要分三个部分:第一部分重点介绍...

¥179.00

极限黑客攻防:CTF赛题揭秘

王新辉 天融信阿尔法实验室 张黎元 郭勇生 (作者)

CTF在网络安全领域特指网络安全技术人员之间进行技术竞技的一种比赛。CTF代替了以往黑客通过互相发起真实攻击进行技术比拼的方式,题目来自日常工作环境,并将其中的...

¥99.00

深入集群:大型数据中心资源调度与管理

李雨前 (作者)

本书内容聚焦资源侧:集群调度和管理,非一般性的应用集群调度和管理。尽管按集群调度和集群管理两大部分来进行内容组织,实质上这两部分是一体的。集群管理是为了保障集群...

¥89.00