本书详细剖析了作为核心基础软件系统的数据库在云计算时代的技术演进历程,从架构设计、实现机制和系统优化等多个角度阐述传统数据库技术是如何一步步发展到云原生形态的。本书强调理论和实践的充分结合,分析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