云原生數(shù)據(jù)庫(kù):原理與實(shí)踐
定 價(jià):99 元
叢書(shū)名:阿里云智能產(chǎn)學(xué)合作系列教材
- 作者:李飛飛 等
- 出版時(shí)間:2021/12/1
- ISBN:9787121421655
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TP393.027
- 頁(yè)碼:348
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)詳細(xì)剖析了作為核心基礎(chǔ)軟件系統(tǒng)的數(shù)據(jù)庫(kù)在云計(jì)算時(shí)代的技術(shù)演進(jìn)歷程,從架構(gòu)設(shè)計(jì)、實(shí)現(xiàn)機(jī)制和系統(tǒng)優(yōu)化等多個(gè)角度闡述傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)是如何一步步發(fā)展到云原生形態(tài)的。本書(shū)強(qiáng)調(diào)理論和實(shí)踐的充分結(jié)合,分析MySQL、PostgreSQL等工業(yè)界“活”的系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的SQL優(yōu)化與執(zhí)行、事務(wù)處理、緩存與索引等原理,在面對(duì)實(shí)際應(yīng)用需求時(shí)做了哪些權(quán)衡與折中,面對(duì)復(fù)雜的應(yīng)用場(chǎng)景如何優(yōu)化,以及做出種種選擇背后的原因。同時(shí),本書(shū)結(jié)合阿里云在數(shù)據(jù)庫(kù)領(lǐng)域的研發(fā)實(shí)踐經(jīng)驗(yàn),著重講述現(xiàn)代數(shù)據(jù)庫(kù)從系統(tǒng)進(jìn)化到服務(wù)的一系列核心技術(shù)原理,例如利用云計(jì)算資源池化技術(shù)、分布式技術(shù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的高可用、彈性擴(kuò)展和按需使用等。本書(shū)內(nèi)容翔實(shí),兼具理論深度和實(shí)現(xiàn)細(xì)節(jié),同時(shí)開(kāi)放性地探索了數(shù)據(jù)庫(kù)的最新發(fā)展方向,能夠啟發(fā)讀者進(jìn)一步深入思考。本書(shū)可作為高等院校信息類(lèi)專(zhuān)業(yè)的本科生和碩士研究生教材,也可作為數(shù)據(jù)庫(kù)行業(yè)的內(nèi)核研發(fā)和系統(tǒng)運(yùn)維等從業(yè)人員的參考書(shū)。
李飛飛阿里巴巴集團(tuán)副總裁,阿里云智能事業(yè)群數(shù)據(jù)庫(kù)產(chǎn)品事業(yè)部與達(dá)摩院數(shù)據(jù)庫(kù)與存儲(chǔ)實(shí)驗(yàn)室負(fù)責(zé)人,ACM杰出科學(xué)家。曾獲ACM與IEEE多項(xiàng)大獎(jiǎng),世界互聯(lián)網(wǎng)大會(huì)2019全球領(lǐng)先科技成果獎(jiǎng),浙江省科技進(jìn)步一等獎(jiǎng),中國(guó)電子學(xué)會(huì)科技進(jìn)步一等獎(jiǎng)等。帶領(lǐng)團(tuán)隊(duì)研發(fā)了阿里云企業(yè)級(jí)云原生數(shù)據(jù)庫(kù)系統(tǒng)。擔(dān)任多個(gè)國(guó)際及國(guó)內(nèi)一流學(xué)術(shù)期刊和學(xué)術(shù)會(huì)議的編委、主席。中國(guó)計(jì)算機(jī)學(xué)會(huì)CCF大數(shù)據(jù)專(zhuān)家委員會(huì)副主任,數(shù)據(jù)庫(kù)專(zhuān)業(yè)委員會(huì)常委。擔(dān)任多個(gè)國(guó)際一流學(xué)術(shù)期刊和學(xué)術(shù)會(huì)議的編委、主席(VLDB 2021與IEEE ICDE 2021工業(yè)界主席)。周烜華東師范大學(xué)數(shù)據(jù)科學(xué)與工程學(xué)院教授、副院長(zhǎng)。2001年本科畢業(yè)于復(fù)旦大學(xué),2005年在新加坡國(guó)立大學(xué)取得博士學(xué)位,2005年至2010年期間先后在德國(guó)?L3S?研究中心和澳大利亞聯(lián)邦科工組織從事科研工作,隨后在中國(guó)人民大學(xué)任教,于2017年加入華東師范大學(xué)。他的研究興趣包括數(shù)據(jù)庫(kù)系統(tǒng)和信息檢索技術(shù)。他曾參與和負(fù)責(zé)多個(gè)國(guó)內(nèi)外的科研項(xiàng)目和工業(yè)合作項(xiàng)目,開(kāi)發(fā)各種數(shù)據(jù)管理系統(tǒng),在分布式數(shù)據(jù)庫(kù)上的研究成果獲2019年國(guó)家科技進(jìn)步二等獎(jiǎng)。蔡鵬華東師范大學(xué)數(shù)據(jù)科學(xué)與工程學(xué)院教授,博士生導(dǎo)師。2015年6月加入華東師范大學(xué)數(shù)據(jù)科學(xué)與工程學(xué)院,在此之前先后就職于IBM中國(guó)研究院和百度(中國(guó))有限公司。在VLDB、ICDE、SIGIR、ACL等國(guó)際頂級(jí)會(huì)議上發(fā)表多篇學(xué)術(shù)論文。目前的研究方向?yàn)閮?nèi)存事務(wù)處理、于機(jī)器學(xué)習(xí)技術(shù)的自適應(yīng)數(shù)據(jù)管理系統(tǒng)。曾獲國(guó)家科技進(jìn)步二等獎(jiǎng)、教育部科技進(jìn)步一等獎(jiǎng)。張蓉華東師范大學(xué)數(shù)據(jù)科學(xué)與工程學(xué)院教授,博士生導(dǎo)師。自2001年起從事分布式系統(tǒng)、數(shù)據(jù)庫(kù)相關(guān)研究與開(kāi)發(fā)工作,曾作為負(fù)責(zé)人或者主要參與人員參加國(guó)家自然科學(xué)基金課題、國(guó)家863計(jì)劃項(xiàng)目及多項(xiàng)企業(yè)合作項(xiàng)目的研究。工作成果獲得上海市科技進(jìn)步一等獎(jiǎng)(排名第四)以及國(guó)家科學(xué)技術(shù)進(jìn)步二等獎(jiǎng)(排名第七)。研究興趣包括分布式數(shù)據(jù)管理、數(shù)據(jù)流管理和大數(shù)據(jù)基準(zhǔn)評(píng)測(cè)。黃貴阿里巴巴資深技術(shù)專(zhuān)家,阿里云數(shù)據(jù)庫(kù)總架構(gòu)師,在阿里巴巴一直從事分布式系統(tǒng)、分布式數(shù)據(jù)庫(kù)內(nèi)核的研發(fā)工作,參與自研數(shù)據(jù)庫(kù)PolarDB的研發(fā)工作。技術(shù)專(zhuān)長(zhǎng)和研究興趣為分布式系統(tǒng)設(shè)計(jì)、分布式一致性協(xié)議、數(shù)據(jù)庫(kù)內(nèi)核實(shí)現(xiàn)等領(lǐng)域,曾在SIGMOD、FAST、VLDB等國(guó)際頂級(jí)會(huì)議上發(fā)表多篇學(xué)術(shù)論文,獲得中國(guó)電子學(xué)會(huì)科技進(jìn)步一等獎(jiǎng)。劉湘雯阿里云副總裁、阿里巴巴達(dá)摩院秘書(shū)長(zhǎng)、中國(guó)計(jì)算機(jī)學(xué)會(huì)常務(wù)理事。加入阿里巴巴十多年來(lái),先后帶領(lǐng)團(tuán)隊(duì)搭建了阿里巴巴集團(tuán)技術(shù)大中臺(tái)戰(zhàn)略的三層治理體系,完成了阿里巴巴達(dá)摩院從0到1的建設(shè)落地。當(dāng)前任阿里云市場(chǎng)營(yíng)銷(xiāo)與公共事務(wù)部總經(jīng)理,代表阿里云對(duì)外構(gòu)建了由高校、政府、開(kāi)發(fā)者、創(chuàng)新創(chuàng)業(yè)者組成的合作網(wǎng)絡(luò),推動(dòng)數(shù)字經(jīng)濟(jì)時(shí)代阿里云2.0品牌的升級(jí)。
目 錄
第1章 數(shù)據(jù)庫(kù)發(fā)展歷程 1
1.1 數(shù)據(jù)庫(kù)發(fā)展概述 2
1.1.1 萌芽 2
1.1.2 商業(yè)化起步 3
1.1.3 發(fā)展成熟 3
1.1.4 云原生與分布式時(shí)代 4
1.2 數(shù)據(jù)庫(kù)技術(shù)發(fā)展趨勢(shì) 6
1.2.1 云原生與分布式 6
1.2.2 大數(shù)據(jù)與數(shù)據(jù)庫(kù)一體化 6
1.2.3 軟硬件一體化 7
1.2.4 多模 7
1.2.5 智能化運(yùn)維 8
1.2.6 安全可信 8
1.3 關(guān)系數(shù)據(jù)庫(kù)主要技術(shù)原理 8
1.3.1 接入管理 9
1.3.2 查詢(xún)引擎 10
1.3.3 事務(wù)處理 14
1.3.4 存儲(chǔ)引擎 17
參考文獻(xiàn) 19
第2章 數(shù)據(jù)庫(kù)與云原生 20
2.1 數(shù)據(jù)庫(kù)在云時(shí)代的發(fā)展 21
2.1.1 云計(jì)算時(shí)代的興起 21
2.1.2 數(shù)據(jù)庫(kù)作為一種服務(wù) 22
2.2 數(shù)據(jù)庫(kù)在云原生時(shí)代面臨的挑戰(zhàn) 23
2.3 云原生數(shù)據(jù)庫(kù)的主要特點(diǎn) 24
2.3.1 分層架構(gòu) 24
2.3.2 資源解耦與池化 24
2.3.3 彈性伸縮能力 24
2.3.4 高可用與數(shù)據(jù)一致性 25
2.3.5 多租戶(hù)與資源隔離 26
2.3.6 智能化運(yùn)維 26
參考文獻(xiàn) 26
第3章 云原生數(shù)據(jù)庫(kù)架構(gòu) 27
3.1 設(shè)計(jì)理念 28
3.1.1 云原生數(shù)據(jù)庫(kù)的本質(zhì) 28
3.1.2 計(jì)算與存儲(chǔ)分離 29
3.2 架構(gòu)設(shè)計(jì) 30
3.3 典型的云原生數(shù)據(jù)庫(kù) 31
3.3.1 AWS Aurora 31
3.3.2 PolarDB 37
3.3.3 Microsoft Socrates 40
參考文獻(xiàn) 44
第4章 存儲(chǔ)引擎 45
4.1 數(shù)據(jù)組織 46
4.1.1 B+樹(shù) 47
4.1.2 InnoDB引擎中的B+樹(shù) 49
4.1.3 LSM-tree 52
4.2 并發(fā)控制 56
4.2.1 基本概念 56
4.2.2 鎖方法 56
4.2.3 時(shí)間戳方法 58
4.2.4 MVCC 61
4.2.5 InnoDB MVCC的實(shí)現(xiàn) 63
4.3 日志與恢復(fù) 65
4.3.1 基本概念 65
4.3.2 邏輯日志 66
4.3.3 物理日志 66
4.3.4 恢復(fù)原理 67
4.3.5 MySQL的Binlog 68
4.3.6 InnoDB的物理日志 68
4.4 新型LSM存儲(chǔ)引擎 70
4.4.1 PolarDB X-Engine 70
4.4.2 高性能事務(wù)處理 72
4.4.3 軟硬結(jié)合優(yōu)化 75
4.4.4 低成本分層存儲(chǔ) 78
4.4.5 雙存儲(chǔ)引擎技術(shù) 84
4.4.6 實(shí)驗(yàn)評(píng)估 85
參考文獻(xiàn) 88
第5章 高可用共享存儲(chǔ)系統(tǒng) 89
5.1 高可用基礎(chǔ) 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 共享存儲(chǔ)架構(gòu) 116
5.3.1 Aurora存儲(chǔ)系統(tǒng) 117
5.3.2 PolarFS 119
5.4 文件系統(tǒng)優(yōu)化 121
5.4.1 用戶(hù)態(tài)I/O計(jì)算 121
5.4.2 近存儲(chǔ)計(jì)算 124
參考文獻(xiàn) 130
第6章 數(shù)據(jù)庫(kù)緩存 131
6.1 數(shù)據(jù)庫(kù)緩存簡(jiǎn)介 132
6.1.1 數(shù)據(jù)庫(kù)緩沖作用 132
6.1.2 緩沖池 132
6.2 緩存恢復(fù) 133
6.2.1 云環(huán)境對(duì)緩存的挑戰(zhàn) 133
6.2.2 基于CPU與內(nèi)存分離的緩存恢復(fù) 133
6.3 PolarDB的實(shí)踐 135
6.3.1 緩沖池的優(yōu)化 135
6.3.2 數(shù)據(jù)字典緩存和文件系統(tǒng)緩存的優(yōu)化 140
6.3.3 基于RDMA的共享內(nèi)存池 141
參考文獻(xiàn) 146
第7章 計(jì)算引擎 147
7.1 查詢(xún)處理概述 148
7.1.1 數(shù)據(jù)庫(kù)查詢(xún)處理概述 148
7.1.2 并行查詢(xún)概述 149
7.2 查詢(xún)執(zhí)行模型 151
7.2.1 火山模型 151
7.2.2 編譯執(zhí)行模型 152
7.2.3 向量化執(zhí)行模型 152
7.3 查詢(xún)優(yōu)化概述 153
7.3.1 查詢(xún)優(yōu)化整體介紹 153
7.3.2 邏輯查詢(xún)優(yōu)化 153
7.3.3 物理查詢(xún)優(yōu)化 154
7.3.4 其他優(yōu)化方法 154
7.4 PolarDB查詢(xún)引擎實(shí)踐 155
7.4.1 PolarDB的并行查詢(xún)技術(shù) 155
7.4.2 PolarDB的執(zhí)行計(jì)劃管理 168
7.4.3 PolarDB的向量化執(zhí)行 175
參考文獻(xiàn) 178
第8章 云原生與分布式融合 179
8.1 分布式數(shù)據(jù)庫(kù)的基本原理 180
8.1.1 分布式數(shù)據(jù)庫(kù)架構(gòu) 180
8.1.2 數(shù)據(jù)分區(qū) 181
8.1.3 分布式事務(wù) 183
8.1.4 MPP并行查詢(xún)處理 187
8.2 分布式與云原生 188
8.2.1 共享存儲(chǔ)架構(gòu) 189
8.2.2 無(wú)共享存儲(chǔ)架構(gòu) 189
8.3 云原生分布式數(shù)據(jù)庫(kù) PolarDB-X 190
8.3.1 架構(gòu)設(shè)計(jì) 190
8.3.2 拆分方式 191
8.3.3 全局二級(jí)索引 192
8.3.4 分布式事務(wù) 193
8.3.5 HTAP 193
參考文獻(xiàn) 194
第9章 云原生數(shù)據(jù)庫(kù)PolarDB 應(yīng)用實(shí)踐 195
9.1 創(chuàng)建云上實(shí)例 196
9.2 數(shù)據(jù)庫(kù)接入 198
9.2.1 相關(guān)賬號(hào)的創(chuàng)建 198
9.2.2 圖形化訪問(wèn) 198
9.2.3 連接方式訪問(wèn) 199
9.3 基本操作 202
9.3.1 數(shù)據(jù)庫(kù)與表創(chuàng)建 202
9.3.2 創(chuàng)建測(cè)試數(shù)據(jù) 203
9.3.3 賬號(hào)與權(quán)限管理 204
9.3.4 數(shù)據(jù)查詢(xún) 205
9.4 云上數(shù)據(jù)遷移 208
9.4.1 云上數(shù)據(jù)的遷入 208
9.4.2 云上數(shù)據(jù)的導(dǎo)出 211
第10章 PolarDB運(yùn)維管理 212
10.1 數(shù)據(jù)庫(kù)運(yùn)維概述 213
10.2 擴(kuò)展資源 213
10.2.1 系統(tǒng)擴(kuò)展 213
10.2.2 手動(dòng)升降配 213
10.2.3 手動(dòng)增減節(jié)點(diǎn) 214
10.2.4 自動(dòng)升降配和增減節(jié)點(diǎn) 214
10.3 備份與恢復(fù) 215
10.3.1 備份 215
10.3.2 恢復(fù) 217
10.4 監(jiān)控與診斷 218
10.4.1 監(jiān)控與報(bào)警 218
10.4.2 診斷與優(yōu)化 218
參考文獻(xiàn) 220