深入淺出Greenplum分佈式數據庫:原理、架構和代碼分析
王鳳剛
相關主題
商品描述
在雲計算和互聯網快速發展的驅動下,分佈式技術領域產生了很多新的熱點,分佈式數據庫就是其中之一。但是,目前對分佈式數據庫的理解和研究多停留在理論層面,本書以Greenplum分佈式數據庫為例,深入剖析分佈式技術在工業級產品里的實現細節,為讀者呈現從理論到實踐的“全景圖”。
本書共3篇:第1篇主要介紹分佈式數據庫基礎理論,包括經典的CAP理論、一致性算法相關的理論、並發控制相關的理論等;第2篇具體介紹Greenplum數據庫,從分佈式事務、分佈式計算和分佈式存儲3個方面,深入代碼層級,講述分佈式理論在工業上的實現;第3篇是總結和展望,介紹雲原生數據庫和新技術帶給Greenplum和數據庫管理系統的機遇和挑戰。
本書打破以理論介紹和架構介紹為主的思路,深入分析工業化的實現,實踐性強。本書主要面向數據庫領域的科研工作者和學者,也可作為高校電腦類專業的分佈式數據庫相關課程的參考資料。
作者簡介
王凤刚
分布式数据库开源项目Greenplum和HAWQ的贡献者;
Greenplum相关产品工作经验9年;
500强企业服务经验14年;
云计算和分布式系统的开发和运维经验18年。
目錄大綱
第 1篇 原理篇
第 1章 雲計算時代的數據庫 2
1.1 數據庫的歷史和發展 2
1.2 雲計算帶來的挑戰 3
1.3 雲原生數據庫的主要特點 3
第 2章 分佈式數據庫基礎理論和架構 5
2.1 分佈式數據庫理論概述 5
2.1.1 CAP理論和BASE理論 5
2.1.2 一致性算法 6
2.2 典型的分佈式數據庫 9
2.2.1 OLTP型數據庫 9
2.2.2 OLAP型數據庫 9
2.2.3 HTAP型數據庫 9
第3章 並發控制 10
3.1 概述 10
3.2 並發控制的分類 10
3.3 基於鎖的並發控制 11
3.4 基於時間戳的並發控制 12
3.5 基於驗證法的樂觀並發控制 13
3.6 MVCC技術 13
3.7 快照隔離技術 16
3.8 可序列化快照隔離 17
3.9 死鎖管理 20
3.10 B*樹和LSM樹 25
第 2篇 Greenplum架構和源碼分析
第4章 Greenplum總體架構 30
4.1 概述 30
4.2 數據庫通信協議 33
4.2.1 啟動階段 35
4.2.2 取消請求 36
4.2.3 常規階段 36
4.3 Greenplum的架構和核心引擎 38
4.3.1 Greenplum主要模塊介紹 38
4.3.2 通用場景 40
4.3.3 Interconnect模塊 42
4.3.4 gang和slice 54
第5章 分佈式事務的實現 62
5.1 分佈式事務的原理和兩階段提交 62
5.1.1 事務隔離 62
5.1.2 兩階段提交 65
5.2 steal/force和WAL協議 66
5.3 PostgreSQL事務處理和狀態機介紹 68
5.3.1 PostgreSQL事務處理 69
5.3.2 PostgreSQL狀態機 70
5.4 分佈式事務狀態機 72
5.5 簡單完整的分佈式事務 75
5.5.1 初始化和begin命令 75
5.5.2 insert命令 79
5.5.3 兩階段提交的實現 81
5.6 分佈式事務如何容錯 93
第6章 分佈式計算的實現 100
6.1 Greenplum的執行計劃 100
6.1.1 查詢優化器 100
6.1.2 Greenplum的統計信息 102
6.1.3 Legacy優化器概述 102
6.1.4 Orca優化器簡介 109
6.2 運行執行器的算子 111
6.2.1 常規算子 111
6.2.2 具有特殊功能的算子 114
6.2.3 Motion算子 117
6.2.4 運行執行器綜述 118
6.3 本地共享快照 122
6.4 分佈式快照 125
6.4.1 分佈式快照的實現方式 125
6.4.2 可見性判斷 129
6.5 共享內存 133
6.6 哈希和重分佈 134
第7章 分佈式存儲的實現 140
7.1 Greenplum數據的分佈方式 140
7.1.1 哈希分佈 140
7.1.2 隨機分佈 141
7.1.3 復制分佈 142
7.2 Greenplum數據庫的高可用性 142
7.3 heap表和AO表 143
7.4 外部表存儲 144
7.4.1 Libcurl庫函數 145
7.4.2 外部表協議gpfdist 146
7.4.3 Scan算子和gpfdist客戶端 148
7.4.4 gpfdist服務端 153
第3篇 數據庫和新技術
第8章 雲原生數據庫 158
8.1 Greenplum的雲原生嘗試 158
8.2 VMware多雲戰略和Greenplum 159
8.3 HAWQ項目介紹 160
第9章 新技術的機遇 162
9.1 NVM存儲技術 162
9.2 虛擬化技術 163
9.3 容器技術 164