云原生数据库:原理与实践

李飞飞 等

  • 出版商: 電子工業
  • 出版日期: 2021-12-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 繁體中文
  • 頁數: 348
  • 裝訂: 平裝
  • ISBN: 7121421658
  • ISBN-13: 9787121421655
  • 已絕版

商品描述

本書詳細剖析了作為核心基礎軟件系統的數據庫在雲計算時代的技術演進歷程,
從架構設計、實現機制和系統優化等多個角度闡述傳統數據庫技術是如何一步步發展到雲原生形態的。
本書強調理論和實踐的充分結合,分析MySQL、
PostgreSQL等工業界“活”的系統實現數據庫的SQL優化與執行、
事務處理、緩存與索引等原理,
在面對實際應用需求時做了哪些權衡與折中,
面對複雜的應用場景如何優化,以及做出種種選擇背後的原因。
同時,本書結合阿里雲在數據庫領域的研發實踐經驗,
著重講述現代數據庫從系統進化到服務的一系列核心技術原理,
例如利用雲計算資源池化技術、分佈式技術實現數據庫的高可用、
彈性擴展和按需使用等。

本書內容翔實,兼具理論深度和實現細節,
同時開放性地探索了數據庫的*新發展方向,能夠啟發讀者進一步深入思考。
本書可作為高等院校信息類專業的本科生和碩士研究生教材,
也可作為數據庫行業的內核研發和系統運維等從業人員的參考書。

目錄大綱

目錄
第1章  數據庫發展歷程 1
1.1  數據庫發展概述 2
1.1.1  萌芽 2
1.1.2  商業化起步 3
1.1.3  發展成熟 3
1.1.4  雲原生與分佈式時代 4
1.2  數據庫技術發展趨勢 6
1.2.1  雲原生與分佈式 6
1.2.2  大數據與數據庫一體化 6
1.2.3  軟硬件一體化 7
1.2.4  多模 7
1.2.5  智能化運維 8
1.2.6  安全可信 8
1.3  關係數據庫主要技術原理 8
1.3.1  接入管理 9
1.3.2  查詢引擎 10
1.3.3  事務處理 14
1.3.4  存儲引擎 17
參考文獻 19

第2章  數據庫與雲原生 20
2.1  數據庫在雲時代的發展 21
2.1.1  雲計算時代的興起 21
2.1.2  數據庫作為一種服務 22
2.2  數據庫在雲原生時代面臨的挑戰 23
2.3  雲原生數據庫的主要特點 24
2.3.1  分層架構 24
2.3.2  資源解耦與池化 24
2.3.3  彈性伸縮能力 24
2.3.4  高可用與數據一致性 25
2.3.5  多租戶與資源隔離 26
2.3.6  智能化運維 26
參考文獻 26

第3章  雲原生數據庫架構 27
3.1  設計理念 28
3.1.1  雲原生數據庫的本質 28
3.1.2  計算與存儲分離 29
3.2  架構設計 30
3.3  典型的雲原生數據庫 31
3.3.1  AWS Aurora 31
3.3.2  PolarDB 37
3.3.3  Microsoft Socrates 40
參考文獻 44

第4章  存儲引擎 45
4.1  數據組織 46
4.1.1  B+樹 47
4.1.2  InnoDB引擎中的B+樹 49
4.1.3  LSM-tree 52
4.2  並發控制 56
4.2.1  基本概念 56
4.2.2  鎖方法 56
4.2.3  時間戳方法 58
4.2.4  MVCC 61
4.2.5  InnoDB MVCC的實現 63
4.3  日誌與恢復 65
4.3.1  基本概念 65
4.3.2  邏輯日誌 66
4.3.3  物理日誌 66
4.3.4  恢復原理 67
4.3.5  MySQL的Binlog 68
4.3.6  InnoDB的物理日誌 68
4.4  新型LSM存儲引擎 70
4.4.1  PolarDB X-Engine 70
4.4.2  高性能事務處理 72
4.4.3  軟硬結合優化 75
4.4.4  低成本分層存儲 78
4.4.5  雙存儲引擎技術 84
4.4.6  實驗評估 85
參考文獻 88

第5章  高可用共享存儲系統 89
5.1  高可用基礎 90
5.1.1  Primary-Backup 90
5.1.2  Quorum 92
5.1.3  Paxos 93
5.1.4  Raft 95
5.1.5  Parallel Raft 98
5.2  集群高可用 100
5.2.1  MySQL集群高可用 100
5.2.2  PolarDB高可用 103
5.3  共享存儲架構 116
5.3.1  Aurora存儲系統 117
5.3.2  PolarFS 119
5.4  文件系統優化 121
5.4.1  用戶態I/O計算 121
5.4.2  近存儲計算 124
參考文獻 130

第6章  數據庫緩存 131
6.1  數據庫緩存簡介 132
6.1.1  數據庫緩衝作用 132
6.1.2  緩衝池 132
6.2  緩存恢復 133
6.2.1  雲環境對緩存的挑戰 133
6.2.2  基於CPU與內存分離的緩存恢復 133
6.3  PolarDB的實踐 135
6.3.1  緩衝池的優化 135
6.3.2  數據字典緩存和文件系統緩存的優化 140
6.3.3  基於RDMA的共享內存池 141
參考文獻 146

第7章  計算引擎 147
7.1  查詢處理概述 148
7.1.1  數據庫查詢處理概述 148
7.1.2  並行查詢概述 149
7.2  查詢執行模型 151
7.2.1  火山模型 151
7.2.2  編譯執行模型 152
7.2.3  向量化執行模型 152
7.3  查詢優化概述 153
7.3.1  查詢優化整體介紹 153
7.3.2  邏輯查詢優化 153
7.3.3  物理查詢優化 154
7.3.4  其他優化方法 154
7.4  PolarDB查詢引擎實踐 155
7.4.1  PolarDB的並行查詢技術 155
7.4.2  PolarDB的執行計劃管理 168
7.4.3  PolarDB的向量化執行 175
參考文獻 178

第8章  雲原生與分佈式融合 179
8.1  分佈式數據庫的基本原理 180
8.1.1  分佈式數據庫架構 180
8.1.2  數據分區 181
8.1.3  分佈式事務 183
8.1.4  MPP並行查詢處理 187
8.2  分佈式與雲原生 188
8.2.1  共享存儲架構 189
8.2.2  無共享存儲架構 189
8.3  雲原生分佈式數據庫 PolarDB-X 190
8.3.1  架構設計 190
8.3.2  拆分方式 191
8.3.3  全局二級索引 192
8.3.4  分佈式事務 193
8.3.5  HTAP 193
參考文獻 194

第9章  雲原生數據庫PolarDB 應用實踐 195
9.1  創建雲上實例 196
9.2  數據庫接入 198
9.2.1  相關賬號的創建 198
9.2.2  圖形化訪問 198
9.2.3  連接方式訪問 199
9.3  基本操作 202
9.3.1  數據庫與表創建 202
9.3.2  創建測試數據 203
9.3.3  賬號與權限管理 204
9.3.4  數據查詢 205
9.4  雲上數據遷移 208
9.4.1  雲上數據的遷入 208
9.4.2  雲上數據的導出 211

第10章  PolarDB運維管理 212
10.1  數據庫運維概述 213
10.2  擴展資源 213
10.2.1  系統擴展 213
10.2.2  手動升降配 213
10.2.3  手動增減節點 214
10.2.4  自動升降配和增減節點 214
10.3  備份與恢復 215
10.3.1  備份 215
10.3.2  恢復 217
10.4  監控與診斷 218
10.4.1  監控與報警 218
10.4.2  診斷與優化 218
參考文獻 220