新書推薦:
《
国家豁免法的域外借鉴与实践建议
》
售價:NT$
857.0
《
大单元教学设计20讲
》
售價:NT$
347.0
《
儿童自我关怀练习册:做自己最好的朋友
》
售價:NT$
316.0
《
高敏感女性的力量(意大利心理学家FSP博士重磅力作。高敏感是优势,更是力量)
》
售價:NT$
286.0
《
元好问与他的时代(中华学术译丛)
》
售價:NT$
398.0
《
汽车传感器结构·原理·检测·维修
》
售價:NT$
500.0
《
怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!)
》
售價:NT$
296.0
《
罗马政治观念中的自由
》
售價:NT$
230.0
|
編輯推薦: |
本书是华为技术有限公司官方图书。由我国著名数据库科学家李国良教授与华为数据库技术专家张树杰联合编著。本书系统介绍了openGauss数据库内核及源码分析,是学习openGauss的参考工具书。
|
內容簡介: |
本书是针对openGauss开源数据库的源码进行分模块解析的书籍。 全书共分为10章。第1章对openGauss进行简介。第2章介绍了内核开发所需的入门知识,包括 openGauss的安装、基本使用、开发、编译、参与社区开源项目等。第3~10章针对openGauss不同的功能 模块分别进行源码介绍。第3章针对系统表、多线程架构、内存管理等作用于整个数据库系统的公共组件 从定义、原理、流程等方面进行源码介绍; 第4章介绍openGauss满足OLTP、OLAP不同业务场景的存储 引擎实现及对应的源码; 第5章介绍保证数据库ACID属性的事务机制的原理和源码; 第6章介绍SQL 引擎的SQL解析和查询优化代码主流程; 第7章介绍openGauss执行器的整体架构和各类执行算子的源 码; 第8章介绍openGauss在人工智能与数据库结合领域探索的源码; 第9章从系统整体角度出发,针对 基础和高阶的安全能力进行全面介绍和源码解读; 第10章介绍openGauss的备份恢复机制的源码,包括 全量备份、增量备份所涉及的工具、交互流程和主要文件等。 本书可以作为内核开发者了解openGauss数据库并基于openGauss进行数据库开发的参考教程,也 可以作为广大高校计算机专业“数据库设计”课程的参考教材。
|
關於作者: |
李国良 清华大学计算机系副主任、教授、博士生导师。在数据库会议和期刊上发表论文150余篇,他引10000余次。先后主持国家杰出青年科学基金、优秀青年基金、“青年973”等多个项目。获得VLDB青年贡献奖,IEEE数据工程杰出新人奖,国家科学技术进步二等奖,VLDB、KDD、ICDE、CIKM论文奖(提名奖)。担任SIGMOD 2021大会主席。
张树杰 华为数据库技术专家,长期从事数据库内核开发工作,精通数据库内核原理和架构设计,目前在华为高斯实验室负责GaussDB SQL引擎的开发和技术规划,著有《PostgreSQL技术内幕:查询优化深度探索》《PostgreSQL技术内幕:事务处理深度探索》等图书。
|
目錄:
|
第1章openGauss简介00
1.1openGauss概述00
1.2应用场景00
1.3系统架构00
1.4代码结构00
1.4.1通信管理00
1.4.2SQL引擎00
1.4.3存储引擎0
1.5价值特性0
1.5.1高性能0
1.5.2高扩展0
1.5.3高可用0
1.5.4可维护性0
1.5.5数据库安全0
1.5.6AI能力0
1.6本章小结0
第2章openGauss开发快速入门0
2.1安装部署0
2.1.1了解安装流程0
2.1.2准备软硬件安装环境0
2.1.3修改操作系统配置0
2.1.4设置root用户远程登录0
2.1.5获取安装包0
2.1.6创建XML配置文件0
2.1.7初始化安装环境0
2.1.8执行安装0
2.1.9安装验证0
2.2基本使用0
2.2.1连接数据库0
2.2.2使用数据库0
2.3开发和编译0
2.3.1搭建开发环境0
2.3.2搭建编译环境0
2.3.3版本编译0
2.4参与openGauss社区开源项目0
2.4.1开源社区概述0
2.4.2社区环境准备0
2.4.3提交Issue0
2.4.4贡献代码和文档0
2.4.5Git使用0
2.5本章小结
openGauss数据库源码解析
目录
第3章公共组件源码解析
3.1系统表
3.1.1系统表的定义
3.1.2系统表的访问
3.2数据库初始化
3.3多线程架构
3.3.1openGauss主要线程
3.3.2线程间通信
3.3.3线程初始化流程
3.4线程池技术
3.4.1线程池原理
3.4.2线程池实现
3.5内存管理
3.6多维监控
3.7模拟信号机制
3.8本章小结
第4章存储引擎源码解析
4.1存储引擎整体架构与代码
4.2磁盘引擎
4.2.1磁盘引擎整体框架与代码
4.2.2行存储统一访存接口
4.2.3astore
4.2.4ustore
4.2.5行存储索引机制
4.2.6行存储缓存机制
4.2.7cstore
4.2.8日志系统
4.2.9持久化及故障恢复机制
4.2.10主备机制
4.3内存表
4.3.1总体架构与代码
4.3.2FDW
4.3.3内存表的存储
4.3.4索引
4.3.5事务
4.3.6并发控制
4.3.7重做日志
4.3.8检查点
4.3.9恢复
4.4本章小结
第5章事务机制源码解析
5.1事务整体架构与代码
5.2事务并发控制
5.2.1事务状态机
5.2.2事务ID分配及CLOG/CSNLOG
5.2.3MVCC可见性判断机制
5.2.4进程内多线程管理机制
5.3锁机制
5.3.1自旋锁
5.3.2轻量级锁
5.3.3常规锁
5.3.4死锁检测机制
5.3.5无锁原子操作
5.3.6基于鲲鹏服务器的性能优化
5.4本章小结
第6章SQL引擎源码解析
6.1概述
6.2SQL解析
6.2.1词法分析
6.2.2语法分析
6.2.3语义分析
6.2.4解析流程分析
6.3查询优化
6.3.1查询重写
6.3.2统计信息与代价估算
6.3.3物理路径
6.3.4动态规划
6.3.5遗传算法
6.4本章小结
第7章执行器解析
7.1执行器整体架构与代码
7.1.1执行器整体架构
7.1.2火山模型
7.1.3代码
7.2执行流程
7.2.1Portal策略选择模块
7.2.2ProcessUtility模块
7.2.3executor模块
7.3执行算子
7.3.1控制算子
7.3.2扫描算子
7.3.3物化算子
7.3.4连接算子
7.4表达式计算
7.4.1初始化阶段
7.4.2执行阶段
7.5编译执行
7.5.1VecExprCode类
7.5.2VecHashAggCodeGen类
7.5.3VecHashJoinCodeGen类
7.5.4VecSortCodeGen类
7.6向量化引擎
7.6.1控制算子
7.6.2扫描算子
7.6.3物化算子
7.6.4连接算子
7.7本章小结
第8章 AI技术
8.1概述
8.2自调优
8.2.1参数自调优的使用场景
8.2.2现有的参数调优技术
8.2.3XTuner的调优策略
8.2.4openGauss关键源码解析
8.2.5使用示例
8.2.6对XTuner的二次开发
8.2.7XTuner的演进路线
8.3慢SQL发现
8.3.1慢SQL发现的功能
8.3.2现有技术
8.3.3慢SQL发现采取的策略
8.3.4关键源码解析
8.3.5使用示例
8.4智能索引推荐
8.4.1使用场景
8.4.2现有技术
8.4.3实现原理
8.4.4关键源码解析
8.4.5使用示例
8.5指标采集、预测与异常检测
8.5.1使用场景
8.5.2实现原理
8.5.3关键源码解析
8.5.4使用示例
8.5.5演进路线
8.6AI查询时间预测
8.6.1使用场景
8.6.2现有技术
8.6.3实现原理
8.6.4关键源码解析
8.6.5使用示例
8.6.6演进路线
8.7DeepSQL
8.7.1使用场景
8.7.2现有技术
8.7.3关键源码解析
8.7.4基于MADlib框架的扩展
8.7.5MADlib在openGauss上的使用示例
8.7.6演进路线
8.8本章小结
第9章安全管理源码解析
9.1安全管理整体架构与代码
9.2安全认证
9.2.1身份认证
9.2.2口令存储
9.2.3认证机制
9.2.4Kerberos安全认证
9.3角色创建与角色管理
9.3.1角色创建
9.3.2角色管理
9.4权限管理与权限检查
9.4.1权限管理
9.4.2权限检查
9.5审计与追踪
9.5.1审计日志设计
9.5.2审计执行
9.6数据安全技术
9.6.1数据加解密接口
9.6.2数据动态脱敏
9.6.3密态等值查询
9.7本章小结
第10章备份恢复机制
10.1openGauss全量备份技术
10.1.1gs_basebackup备份工具
10.1.2gs_basebackup备份交互流程
10.2openGauss增量备份技术
10.2.1gs_probackup子命令
10.2.2gs_probackup主要文件
10.2.3gs_probackup备份恢复流程
10.2.4redo日志增量备份恢复流程
10.3本章小结
|
內容試閱:
|
数据库是组织、存储、管理、分析数据的系统,目前各行各业几乎所有的信息系统都需要使用数据库系统来管理业务数据。数据库在硬件和应用之间起到了承上启下的重要作用,是IT行业不可或缺的基础软件。
20世纪50年代,随着计算机技术的成熟,计算机开始运用于数据管理,然而传统的文件系统难以应对数据增长的挑战,也无法满足多用户共享数据和快速查询数据的需求。因此,20世纪60年代,数据库应运而生。经过60余年的发展,数据库发生了翻天覆地的变化,从网状数据库的提出到关系数据库的蓬勃发展,从单机数据库、集群数据库到分布式数据库,从本地部署形态到云数据库部署形态,从交易型行存引擎到分析型列存引擎,从SQL到NoSQL再到NewSQL的不同应用形态,从手工运维到AI自运维,数据库技术出现了百家争鸣、百花齐放的大繁荣和大发展。近年来,我国数据库领域无论在学术界还是在工业界都得到了快速发展。
华为公司在2020年6月30日推出了开源关系数据库openGauss,它是GaussDB云数据库服务的开源版本,采用木兰宽松许可证v2发行,深度融合了华为公司在数据库领域多年的经验,是结合企业级场景打造的一款高安全性、高可用性的数据库。本书对openGauss开源社区上的源码进行解析,从系统表、多线程架构等公共组件到存储引擎、SQL引擎、执行引擎、安全、AI等模块,全方位地介绍源码主流程和重要文件,以帮助读者更快地了解openGauss的源码并掌握其具体实现。
本书主要由李国良、张树杰编写。此外,参与本书编写的还包括华为公司多位数据库专家。
感谢清华大学出版社的盛东亮老师、钟志芳老师和崔彤老师在本书编辑审校工作中所作出的贡献。
编者
2021年5月
|
|