openGauss數據庫源碼解析

李國良、張樹傑

  • 出版商: 清華大學
  • 出版日期: 2021-09-01
  • 定價: $870
  • 售價: 7.5$653
  • 語言: 簡體中文
  • 頁數: 636
  • 裝訂: 平裝
  • ISBN: 7302586179
  • ISBN-13: 9787302586173
  • 立即出貨 (庫存 < 4)

  • openGauss數據庫源碼解析-preview-1
  • openGauss數據庫源碼解析-preview-2
  • openGauss數據庫源碼解析-preview-3
openGauss數據庫源碼解析-preview-1

商品描述

本書是針對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簡介001
1.1 openGauss概述001
1.2 應用場景003
1.3 系統架構003
1.4 代碼結構004
1.4.1 通信管理004
1.4.2 SQL引擎006
1.4.3 存儲引擎020
1.5 價值特性034
1.5.1 高性能035
1.5.2 高擴展037
1.5.3 高可用038
1.5.4 可維護性039
1.5.5 數據庫安全040
1.5.6 AI能力043
1.6 本章小結044

第2章 openGauss開發快速入門045
2.1 安裝部署045
2.1.1 了解安裝流程045
2.1.2 準備軟硬件安裝環境046
2.1.3 修改操作系統配置048
2.1.4 設置root用戶遠程登錄050
2.1.5 獲取安裝包051
2.1.6 創建XML配置文件053
2.1.7 初始化安裝環境057
2.1.8 執行安裝058
2.1.9 安裝驗證060
2.2 基本使用060
2.2.1 連接數據庫060
12 openGauss數據庫源碼解析
2.2.2 使用數據庫062
2.3 開發和編譯080
2.3.1 搭建開發環境080
2.3.2 搭建編譯環境085
2.3.3 版本編譯086
2.4 參與openGauss社區開源項目091
2.4.1 開源社區概述091
2.4.2 社區環境準備092
2.4.3 提交Issue 093
2.4.4 貢獻代碼和文檔094
2.4.5 Git使用099
2.5 本章小結100

第3章 公共組件源碼解析101
3.1 系統表101
3.1.1 系統表的定義101
3.1.2 系統表的訪問103
3.2 數據庫初始化103
3.3 多線程架構107
3.3.1 openGauss主要線程108
3.3.2 線程間通信108
3.3.3 線程初始化流程109
3.4 線程池技術111
3.4.1 線程池原理111
3.4.2 線程池實現112
3.5 內存管理115
3.6 多維監控120
3.7 模擬信號機制123
3.8 本章小結125

第4章 存儲引擎源碼解析126
4.1 存儲引擎整體架構與代碼126
4.2 磁盤引擎131
4.2.1 磁盤引擎整體框架與代碼131
4.2.2 行存儲統一訪存接口134
4.2.3 astore 137
目錄 13
4.2.4 ustore 158
4.2.5 行存儲索引機制181
4.2.6 行存儲緩存機制184
4.2.7 cstore 189
4.2.8 日誌系統202
4.2.9 持久化及故障恢復機制209
4.2.10 主備機制214
4.3 內存表223
4.3.1 總體架構與代碼223
4.3.2 FDW 225
4.3.3 內存表的存儲236
4.3.4 索引237
4.3.5 事務237
4.3.6 並發控制243
4.3.7 重做日誌246
4.3.8 檢查點251
4.3.9 恢復254
4.4 本章小結257

第5章 事務機制源碼解析258
5.1 事務整體架構與代碼258
5.2 事務並發控制259
5.2.1 事務狀態機259
5.2.2 事務ID分配及CLOG/CSNLOG 268
5.2.3 MVCC可見性判斷機制271
5.2.4 進程內多線程管理機制279
5.3 鎖機制286
5.3.1 自旋鎖287
5.3.2 輕量級鎖287
5.3.3 常規鎖288
5.3.4 死鎖檢測機制291
5.3.5 無鎖原子操作295
5.3.6 基於鯤鵬服務器的性能優化296
5.4 本章小結307
14 openGauss數據庫源碼解析

第6章 SQL引擎源碼解析308
6.1 概述308
6.2 SQL解析308
6.2.1 詞法分析310
6.2.2 語法分析313
6.2.3 語義分析318
6.2.4 解析流程分析323
6.3 查詢優化326
6.3.1 查詢重寫327
6.3.2 統計信息與代價估算335
6.3.3 物理路徑344
6.3.4 動態規劃344
6.3.5 遺傳算法356
6.4 本章小結367

第7章 執行器解析368
7.1 執行器整體架構與代碼368
7.1.1 執行器整體架構368
7.1.2 火山模型368
7.1.3 代碼370
7.2 執行流程371
7.2.1 Portal策略選擇模塊371
7.2.2 ProcessUtility模塊373
7.2.3 executor模塊373
7.3 執行算子376
7.3.1 控制算子376
7.3.2 掃描算子381
7.3.3 物化算子389
7.3.4 連接算子395
7.4 表達式計算398
7.4.1 初始化階段398
7.4.2 執行階段400
7.5 編譯執行410
7.5.1 VecExprCode類415
7.5.2 VecHashAggCodeGen類419
目錄 15
7.5.3 VecHashJoinCodeGen類420
7.5.4 VecSortCodeGen類422
7.6 向量化引擎423
7.6.1 控制算子423
7.6.2 掃描算子427
7.6.3 物化算子430
7.6.4 連接算子438
7.7 本章小結441

第8章 AI技術442
8.1 概述442
8.2 自調優442
8.2.1 參數自調優的使用場景442
8.2.2 現有的參數調優技術443
8.2.3 X-Tuner的調優策略445
8.2.4 openGauss關鍵源碼解析447
8.2.5 使用示例459
8.2.6 對X-Tuner的二次開發465
8.2.7 X-Tuner的演進路線465
8.3 慢SQL發現465
8.3.1 慢SQL發現的功能466
8.3.2 現有技術466
8.3.3 慢SQL發現採取的策略469
8.3.4 關鍵源碼解析471
8.3.5 使用示例475
8.4 智能索引推薦476
8.4.1 使用場景476
8.4.2 現有技術476
8.4.3 實現原理477
8.4.4 關鍵源碼解析480
8.4.5 使用示例483
8.5 指標採集、預測與異常檢測487
8.5.1 使用場景487
8.5.2 實現原理487
8.5.3 關鍵源碼解析489
8.5.4 使用示例492
8.5.5 演進路線493
8.6 AI查詢時間預測494
8.6.1 使用場景494
8.6.2 現有技術494
8.6.3 實現原理495
8.6.4 關鍵源碼解析500
8.6.5 使用示例505
8.6.6 演進路線505
8.7 DeepSQL 506
8.7.1 使用場景506
8.7.2 現有技術506
8.7.3 關鍵源碼解析507
8.7.4 基於MADlib框架的擴展508
8.7.5 MADlib在openGauss上的使用示例511
8.7.6 演進路線513
8.8 本章小結513

第9章 安全管理源碼解析514
9.1 安全管理整體架構與代碼514
9.2 安全認證516
9.2.1 身份認證517
9.2.2 口令存儲520
9.2.3 認證機制522
9.2.4 Kerberos安全認證529
9.3 角色創建與角色管理531
9.3.1 角色創建531
9.3.2 角色管理536
9.4 權限管理與權限檢查545
9.4.1 權限管理545
9.4.2 權限檢查551
9.5 審計與追踪553
9.5.1 審計日誌設計553
9.5.2 審計執行555
9.6 數據安全技術561
9.6.1 數據加解密接口561
9.6.2 數據動態脫敏570
目錄 17
9.6.3 密態等值查詢578
9.7 本章小結593

第10章 備份恢復機制594
10.1 openGauss全量備份技術594
10.1.1 gs_basebackup備份工具594
10.1.2 gs_basebackup備份交互流程595
10.2 openGauss增量備份技術598
10.2.1 gs_probackup子命令599
10.2.2 gs_probackup主要文件608
10.2.3 gs_probackup備份恢復流程609
10.2.4 redo日誌增量備份恢復流程613
10.3 本章小結613