内容简介
本书详尽阐述了高斯数据库的系统架构、设计理念、核心技术、实现机制以及未来的发展方向。通过深入浅出的叙述,将技术理论与行业应用完美融合,为读者呈现如何实现数据库高性能、高可用、高扩展性、高智能和高安全的关键技术,并深度剖析其背后的优化动因与权衡。本书还介绍了数据库在实际场景中的系统调优思路和经验,为数据库从业人员提供有益参考。 此外,本书还详细介绍了高斯数据库在我国众多关键基础行业的成功应用案例,覆盖金融、政府(比如政务云、财政管理等)、制造业、卫生健康、电信、能源、水利、广播电视等领域,展示了其在实践中的强大功能和广泛影响力。
目录
第1章 数据库关键挑战 1
1.1 数据库发展历程 1
1.1.1 数据库分类 1
1.1.2 数据库架构 3
1.2 数据库最新演进趋势 5
1.2.1 云原生数据库 5
1.2.2 AI-Native 智能数据库 8
1.2.3 全密态数据库 9
1.2.4 端边云数据管理 9
1.2.5 其他技术研究热点 10
第2章 GaussDB 架构介绍 13
2.1 GaussDB 关键架构目标 13
2.2 GaussDB 分布式架构 14
2.2.1 GaussDB 分布式关键技术架构 14
2.2.2 关键模块2 层逻辑模型 17
2.3 GaussDB 分布式关键技术方案 20
2.3.1 数据计算路由层(Coordinator)关键技术方案 20
2.3.2 数据持久化存取层(Datanode)关键技术方案 26
2.3.3 全局事务管理层(GTM)关键技术方案 27
2.3.4 集群管理层(CM)关键技术方案 28
2.3.5 集群管理仲裁关键技术 30
2.3.6 故障检查与异常发现 31
2.3.7 基于Paxos 协议复制实现DN 副本自仲裁 31
2.4 OM 运维管理关键技术方案 32
2.5 安全关键技术方案 33
2.5.1 安全关键技术一:密态等值查询 33
2.5.2 安全关键技术二:防篡改数据库 34
2.6 智能关键技术方案 36
2.6.1 智能关键技术一:自治运维系统 36
2.6.2 智能关键技术二:库内AI 引擎 39
2.6.3 智能关键技术三:智能优化器 40
2.7 驱动接口关键技术方案 41
2.8 GaussDB 云原生架构 41
2.8.1 云原生关键技术架构 41
2.8.2 云原生核心技术 43
第3章 数据库高性能关键技术 58
3.1 数据库性能优化概述 58
3.1.1 数据库的软件栈视角 58
3.1.2 从系统性工程视角理解性能优化 59
3.1.3 性能工程复杂并充满挑战 60
3.1.4 性能相关的术语 61
3.2 查询处理技术 62
3.2.1 查询处理流程 62
3.2.2 查询解析器 62
3.2.3 查询优化器 63
3.2.4 查询执行器 64
3.2.5 分布式执行 67
3.2.6 存储引擎数据读取 68
3.3 高性能关键技术 71
3.3.1 查询重写RBO 71
3.3.2 物理优化CBO 74
3.3.3 分布式优化器 74
3.3.4 分布式执行框架 75
3.3.5 轻量全局事务管理GTM-lite 77
3.3.6 UStore 存储引擎 78
3.3.7 计划缓存技术 79
3.3.8 数据分区与分区剪枝 80
3.3.9 列式存储和向量化引擎 82
3.3.10 SMP 并行执行 85
3.3.11 LLVM 动态查询编译执行 87
3.3.12 SQL-BY-PASS 执行优化 88
3.3.13 线程池化 89
3.3.14 多核处理器优化 90
3.3.15 日志无锁刷新与多级流水 91
3.4 高斯数据库性能优化总结 93
第4章 数据库高可用关键技术 95
4.1 分布式一致性框架 95
4.1.1 共识框架概述 95
4.1.2 DCF 功能架构 96
4.1.3 DCF 选举流程及优化 96
4.1.4 DCF 日志复制流程 97
4.1.5 DCF 优先级选主和策略化多数派 97
4.1.6 DCF 性能设计 98
4.1.7 DCF 日志与XLog 日志合一设计 99
4.1.8 DCF 异常场景处理 100
4.2 双集群容灾 101
4.3 逻辑复制 102
4.3.1 基本概念 103
4.3.2 逻辑复制槽 104
4.3.3 逻辑解码 105
4.3.4 备机解码 106
4.3.5 并行解码 107
4.3.6 一致性解码 107
4.3.7 分布式解码 109
4.4 两地三中心跨Region 容灾 110
4.4.1 两地三中心容灾概述 110
4.4.2 异地容灾部署示例 111
4.4.3 两地三中心容灾方案设计 112
4.4.4 容灾搭建 113
第5章 数据库高弹性关键技术 125
5.1 数据库弹性扩容 125
5.2 Hashbucket 扩容 127
5.2.1 Hashbucket 概念 127
5.2.2 段页式存储技术 129
5.2.3 基于段页式组织的Hashbucket 技术 133
5.2.4 Hashbucket 场景的超长字段实现 134
5.2.5 CBI 索引加速 136
5.2.6 支持Hashbucket 的优化器 138
5.2.7 支持Hashbucket 的执行器 140
5.2.8 Hashbucket 扩容流程 142
5.2.9 扩容中日志多流 149
5.2.10 扩容中事务处理 153
5.2.11 扩容中bucket 锁 156
5.3 扩容实践 157
5.3.1 扩容步骤 157
5.3.2 扩容期间的TPC-C 测试 158
5.3.3 扩容期间的sysbench 测试 159
第6章 数据库高智能关键技术 161
6.1 数据库智能化发展史 161
6.2 自治运维技术 162
6.2.1 智能监测 164
6.2.2 趋势预测 165
6.2.3 异常检测 167
6.2.4 日志分析 170
6.2.5 慢SQL 发现 173
6.2.6 慢SQL 诊断 175
6.2.7 集群故障根
前言/序言
随着数字化时代蓬勃发展,数据量呈现爆炸式增长,数据管理软件变得越来越重要。数据库作为数据管理、分析和处理的核心基础软件,在各个行业的信息化系统中被广泛地应用,并发挥了不可或缺的作用。企业在信息化、数字化和智能化建设上越来越依赖于数据库技术,使得数据库的进步和发展成为支撑数字经济和社会进步的关键动力。在当前国际环境下,拥有和控制核心数据库技术,尤其是具有自主知识产权的自研数据库系统,对国家安全和信息安全至关重要,具有深远的战略意义和经济价值。
为解决企业数据管理问题,华为累积战略投入二十余年的研发资源,开发出高斯数据库(GaussDB/openGauss)。其中,GaussDB 数据库既支持华为集团的业务连续性,又深入服务于国家的 14 个关键基础行业,确保国家数字基础设施的战略安全。自 2020 年起,华为将openGauss 数据库内核开源,携手产业伙伴共同建设数据库基础社区,推动生态繁荣,并通过华为云提供GaussDB 的云服务,向各行各业提供优秀的企业级数据库云服务。
本书详细介绍高斯数据库的核心技术和实现原理,详述了数据库的调优技术,并介绍了高斯数据库的行业应用案例。通过本书,读者可以深入了解如何使用高斯数据库解决企业数据管理问题。
本书共分为10 章:第1 章探讨数据库领域面临的关键挑战和演进方向;第2 章详述高斯数据库的核心架构设计;第3~7 章从五个关键能力——高性能、高可用、高弹性、高智能和高安全——出发,深入讲解高斯数据库的技术原理和实现;第8 章介绍了数据库的迁移策略和实际操作;第9 章详述数据库调优指南;第10 章详解数据库企业应用案例分析,总结了金融、政府等多个关键基础行业的成功应用。期望读者通过本书能够全面理解高斯数据库的技术精髓和行业应用,利用书中的知识和经验帮助更多企业采纳国产数据库,为数据库生态的繁荣和发展作出贡献,共同为世界构建更好的数据库选项。
在编写本书的过程中,我们受益于许多专家的悉心支持与指导。在此,对所有参与编写、审阅及提供帮助的人士表达我们最深切的谢意。
首先,感谢李玉章、李修昶、熊伟、常栋、刘振羽、范良、张东、窦德明、蔡亚杰等同事,他们在本书的编写过程中提供了大力支持与帮助。正是因为他们的建议与指导,我们才能够更好地完成本书的编写。特别感谢何佳佳、肖枫、崔凯峰、高新刚、赵蒙、刘杨箐、黄卫东、秦祎、苏江、朱广亚、赵公坡、周勋、宋智霖、刘国栋、陈维如、张琦、郭翀、温炜、王帅等人提供了丰富而优秀的案例内容。
其次,我们要感谢班伟、王方、钟舟、李士福、孙佶、何睿、郭亮、李强、鲍鹏、张津、朱笛、师亚、桂全国、强鸿斐、康阳、童美霞、符岗、申宇、张傲等人,他们在百忙之中抽出宝贵的时间校对了本书的技术细节。
除此以外,我们特别感谢中国邮政储蓄银行、陕西省财政厅、贵州省卫生健康委员会、国网陕西省电力、山东港口烟台港集团、徐州市水利局、华为质量与流程IT 等行业客户与伙伴提供的案例实践,这些优秀案例为本书的编写提供了重要的支持,让更多人了解高斯数据库在行业的应用情况,感谢这些企业、单位对于行业的卓越贡献。
最后,感谢本书所有读者。本书的编写初衷是帮助大家更好地了解高斯数据库的技术原理,并借助于案例实践,为大家提供更好的技术支持与服务,期待这本书能够对各位读者有所帮助。
由于编著者水平有限,书中难免有不足之处,欢迎各位同行专家与读者批评与指正。
编著者
2024年6月