书籍详情
原理与实践:云原生数据库
作者:李飞飞,周烜,蔡鹏,张蓉,黄贵 著
出版社:电子工业出版社
出版时间:2021-10-01
ISBN:9787121421655
定价:¥99.00
购买这本书可以去
内容简介
本书详细剖析了作为核心基础软件系统的数据库在云计算时代的技术演进历程,从架构设计、实现机制和系统优化等多个角度阐述传统数据库技术是如何一步步发展到云原生形态的。本书强调理论和实践的充分结合,分析MySQL、PostgreSQL等工业界“活”的系统实现数据库的SQL优化与执行、事务处理、缓存与索引等原理,在面对实际应用需求时做了哪些权衡与折中,面对复杂的应用场景如何优化,以及做出种种选择背后的原因。同时,本书结合阿里云在数据库领域的研发实践经验,着重讲述现代数据库从系统进化到服务的一系列核心技术原理,例如利用云计算资源池化技术、分布式技术实现数据库的高可用、弹性扩展和按需使用等。本书内容翔实,兼具理论深度和实现细节,同时开放性地探索了数据库的发展方向,能够启发读者进一步深入思考。本书可作为高等院校信息类专业的本科生和硕士研究生教材,也可作为数据库行业的内核研发和系统运维等从业人员的参考书。
作者简介
李飞飞 阿里巴巴集团副总裁,阿里云智能事业群数据库产品事业部与达摩院数据库与存储实验室负责人,ACM杰出科学家。曾获ACM与IEEE多项大奖,世界互联网大会2019全球领先科技成果奖,浙江省科技进步一等奖,中国电子学会科技进步一等奖等。带领团队研发了阿里云企业级云原生数据库系统。担任多个国际及国内一流学术期刊和学术会议的编委、主席。中国计算机学会CCF大数据专家委员会副主任,数据库专业委员会常委。担任多个国际一流学术期刊和学术会议的编委、主席(VLDB 2021与IEEE ICDE 2021工业界主席)。 周烜 华东师范大学数据科学与工程学院教授、副院长。2001年本科毕业于复旦大学,2005年在新加坡国立大学取得博士学位,2005年至2010年期间先后在德国 L3S 研究中心和澳大利亚联邦科工组织从事科研工作,随后在中国人民大学任教,于2017年加入华东师范大学。他的研究兴趣包括数据库系统和信息检索技术。他曾参与和负责多个国内外的科研项目和工业合作项目,开发各种数据管理系统,在分布式数据库上的研究成果获2019年国家科技进步二等奖。 蔡鹏 华东师范大学数据科学与工程学院教授,博士生导师。2015年6月加入华东师范大学数据科学与工程学院,在此之前先后就职于IBM中国研究院和百度(中国)有限公司。在VLDB、ICDE、SIGIR、ACL等国际顶级会议上发表多篇学术论文。目前的研究方向为内存事务处理、于机器学习技术的自适应数据管理系统。曾获国家科技进步二等奖、教育部科技进步一等奖。张蓉 华东师范大学数据科学与工程学院教授,博士生导师。自2001年起从事分布式系统、数据库相关研究与开发工作,曾作为负责人或者主要参与人员参加国家自然科学基金课题、国家863计划项目及多项企业合作项目的研究。工作成果获得上海市科技进步一等奖(排名第四)以及国家科学技术进步二等奖(排名第七)。研究兴趣包括分布式数据管理、数据流管理和大数据基准评测。黄贵 阿里巴巴资深技术专家,阿里云数据库总架构师,在阿里巴巴一直从事分布式系统、分布式数据库内核的研发工作,参与自研数据库PolarDB的研发工作。技术专长和研究兴趣为分布式系统设计、分布式一致性协议、数据库内核实现等领域,曾在SIGMOD、FAST、VLDB等国际顶级会议上发表多篇学术论文。
目录
第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 Aurora31
3.3.2 PolarDB37
3.3.3 Microsoft Socrates40
参考文献44
第4章 存储引擎45
4.1 数据组织46
4.1.1 B+树47
4.1.2 InnoDB引擎中的B+树49
4.1.3 LSM-tree52
4.2 并发控制56
4.2.1 基本概念56
4.2.2 锁方法56
4.2.3 时间戳方法58
4.2.4 MVCC61
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的Binlog68
4.3.6 InnoDB的物理日志68
4.4 新型LSM存储引擎70
4.4.1 PolarDB X-Engine70
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-Backup90
5.1.2 Quorum92
5.1.3 Paxos93
5.1.4 Raft95
5.1.5 Parallel Raft98
5.2 集群高可用100
5.2.1 MySQL集群高可用100
5.2.2 PolarDB高可用103
5.3 共享存储架构116
5.3.1 Aurora存储系统117
5.3.2 PolarFS119
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
..
参考文献220
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 Aurora31
3.3.2 PolarDB37
3.3.3 Microsoft Socrates40
参考文献44
第4章 存储引擎45
4.1 数据组织46
4.1.1 B+树47
4.1.2 InnoDB引擎中的B+树49
4.1.3 LSM-tree52
4.2 并发控制56
4.2.1 基本概念56
4.2.2 锁方法56
4.2.3 时间戳方法58
4.2.4 MVCC61
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的Binlog68
4.3.6 InnoDB的物理日志68
4.4 新型LSM存储引擎70
4.4.1 PolarDB X-Engine70
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-Backup90
5.1.2 Quorum92
5.1.3 Paxos93
5.1.4 Raft95
5.1.5 Parallel Raft98
5.2 集群高可用100
5.2.1 MySQL集群高可用100
5.2.2 PolarDB高可用103
5.3 共享存储架构116
5.3.1 Aurora存储系统117
5.3.2 PolarFS119
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
..
参考文献220
猜您喜欢