【新书速递】从原理、架构、案例三个维度深度剖析分布式数据库
分布式數(shù)據(jù)庫是分布式計算與數(shù)據(jù)庫結合的產物。分布式數(shù)據(jù)庫的概念早就存在,但是直到最近才真正引起產業(yè)界的高度重視。這得益于互聯(lián)網和云計算技術的高速發(fā)展與廣泛應用。
以“國家政務服務平臺”為例,據(jù)稱其實現(xiàn)了統(tǒng)一身份認證服務、統(tǒng)一證照服務、統(tǒng)一事項服務、統(tǒng)一好差評等體系。平臺的數(shù)據(jù)不是集中存儲的,而是分散存儲在全國多個數(shù)據(jù)中心的多個數(shù)據(jù)庫系統(tǒng)中,而且許多“事項服務”類應用還會要求跨域、跨庫訪問。這個系統(tǒng)剛剛起步,提供的服務還很有限。可以想象,隨著這個系統(tǒng)匯聚的數(shù)據(jù)越來越多,支持的應用越來越豐富,數(shù)據(jù)的一致性問題、系統(tǒng)的效率問題等都會顯現(xiàn)出來。更進一步,這個系統(tǒng)由于支撐著日常的行政服務,對高可用性還會提出更高的要求。凡此種種,都需要分布式數(shù)據(jù)庫技術的支持。分布式數(shù)據(jù)庫將會越來越重要。
在分布式數(shù)據(jù)庫領域體系化的、深入剖析數(shù)據(jù)庫原理的書籍,《分布式數(shù)據(jù)庫原理、架構與實踐》是作者李海翔老師基于對該領域多年的科研和實踐,歷經數(shù)年,把對分布式數(shù)據(jù)庫領域一些重要技術的理解和在實踐中所得的經驗整理成冊。從原理、架構、案例三個維度深度剖析分布式數(shù)據(jù)庫所涉一致性、高可用性等。
騰訊T14級數(shù)據(jù)庫專家的分布式數(shù)據(jù)庫解決方案
底層原理·架構設計·產品解讀
學術研究·經典理論·一線實踐
本書主要討論如下3個話題。
分布式數(shù)據(jù)庫中存在的問題和原理。科學研究,始于問題。本書首先對分布式數(shù)據(jù)庫技術中一些典型問題進行分析,以明確本書所要研究和解決問題的技術方向。之后討論CAP原理與ACID技術結合后的一些問題(重點是一致性問題)及技術,以及業(yè)界在這方面的科研成果和工程實現(xiàn)思路。
分布式數(shù)據(jù)庫架構。從分布式數(shù)據(jù)庫架構的角度,討論影響架構的內在、外在技術因素,內在因素如強一致性、高可靠性、高可用性,外在因素如云計算、Serverless需求等。
分布式數(shù)據(jù)庫案例實踐。從工程實踐的角度,以案例的形式討論諸多分布式系統(tǒng)的實現(xiàn)技術,涉及的數(shù)據(jù)庫包括Spanner、CockroachDB、HBase、Greenplum等。
主要特色
本書以前沿技術和工程實踐為抓手,通過問題確認、原理闡述、架構剖析、實例分析,有深度地進行了以下三項工作。
深入經典技術:對經典技術進行深度探索,如剖析CAP原理的發(fā)展過程,深度解讀事務處理技術(如MVCC、OCC、DTA等技術)的發(fā)展和相關研究。
前沿探索:按照本書的內容規(guī)劃,對前沿技術方向與內容從廣度層面進行剖析和介紹,以開闊讀者的思路和眼界。前沿內容散布于各個章節(jié),與各章節(jié)主題互相映襯。
原理、案例相結合:立足原理,對分布式數(shù)據(jù)庫的架構進行深度剖析,并對業(yè)界多個產品從問題、原理、前沿技術研究成果、架構相關因素等角度進行深度分析。用多個案例多樣化地印證其他部分介紹的原理和前沿技術。
讀者對象
本書面向的主要讀者
分布式數(shù)據(jù)庫的設計者和開發(fā)者;
分布式數(shù)據(jù)庫前沿技術的研究者;
其他對分布式數(shù)據(jù)庫感興趣的讀者。
講了什么
對現(xiàn)代分布式數(shù)據(jù)庫(CAP+傳統(tǒng)分布式數(shù)據(jù)庫)的分布式一致性和事務一致性進行本質分析,通過梳理CAP、一致性協(xié)議、分布式事務原理指導數(shù)據(jù)庫架構設計,并以拆解主流產品的方式介紹落地方法
(1)CAP與ACID結合:引發(fā)的問題,業(yè)界科研成果,工程實現(xiàn)
(2)多種角度探討一致性:分布式一致性(結果一致性、次序一致性、分布式事務一致性、架構一致性),事務一致性
(3)一致性解決方案:邏輯時鐘、向量時鐘、混合邏輯時鐘、Paxos協(xié)議、Raft算法
(4)分布式事務原理:并發(fā)訪問控制、OCC算法、MVCC技術、分布式提交
(5)分布式數(shù)據(jù)庫設計:近10種典型架構實現(xiàn),內外因素影響下的架構實現(xiàn),數(shù)據(jù)庫解耦與重構
(6)典型案例分析:Spanner、Percolator、CockroachDB、Hekaton、Mongo、HBase、Greenplum
有什么不同
(1)直指分布式問題本質:從底層原理角度分析各種問題的根因。
(2)通過經典理論尋找解決方案:用從經典理論入手尋找因分布式引入的問題的解決方案。
(3)吸收50年數(shù)據(jù)庫研究成果:借鑒了自20世紀70年代至今的近300份數(shù)據(jù)庫領域專著和文獻。??
(4)通過案例指導分布式落地實踐:立足原理剖析問題,結合產品指導實踐。??
(5)20年一線實踐經驗:融合作者在騰訊、甲骨文MySQL全球開發(fā)團隊20余年數(shù)據(jù)庫研發(fā)經驗。
作者簡介
李海翔
騰訊金融云數(shù)據(jù)庫首席研究員(T14)
騰訊TDSQL分布式數(shù)據(jù)庫首席架構師
中國人民大學、北京林業(yè)大學特聘碩士導師
數(shù)據(jù)庫事務處理之數(shù)據(jù)異常體系化研究的創(chuàng)立者
《數(shù)據(jù)庫查詢優(yōu)化器的藝術》《數(shù)據(jù)庫事務處理的藝術》作者
在VLDB等數(shù)據(jù)庫大會上發(fā)表論文多篇參與了多個國家863重大專項、核高基、工信部、科技部等的項目。
大咖推薦
海翔對Spanner、Percolator、CockroachDB等多個分布式數(shù)據(jù)庫系統(tǒng)進行了深入分析,對其中的一些核心技術有了較好的理解。在此基礎上,對分布式數(shù)據(jù)庫的一些原理進行了梳理,特別是對“一致性”的概念進行了系統(tǒng)的研究,弄清楚了分布式計算中的一致性(CAP的C)和數(shù)據(jù)庫系統(tǒng)中的事務一致性(ACID的C)的概念的區(qū)別和聯(lián)系。他還深度研究和實踐了高可用分布式數(shù)據(jù)庫的架構設計、主流并發(fā)訪問控制算法等。這些都是很有價值的工作。
?——杜小勇博士中國人民大學教授/中國計算機學會大數(shù)據(jù)專家委員會主任
?本書作者長期從事數(shù)據(jù)庫研究與開發(fā)工作,這是他繼《數(shù)據(jù)庫查詢優(yōu)化器的藝術》和《數(shù)據(jù)庫事務處理的藝術》之后又一部集原理、架構與實踐于一體的分布式數(shù)據(jù)庫力作,非常值得數(shù)據(jù)庫學術界和產業(yè)界人士參考,也是高校學生學習分布式數(shù)據(jù)庫技術很好的教材。
?——彭智勇博士武漢大學教授/中國計算機學會會士/數(shù)據(jù)庫專家委員會副主任
本書的內容涵蓋了分布式技術領域和分布式OLTP數(shù)據(jù)庫領域最新的理論進展和技術實現(xiàn)原理,無論是對數(shù)據(jù)庫內核的資深開發(fā)者、還是進階者,對基于分布式數(shù)據(jù)庫的應用開發(fā)者,對學習數(shù)據(jù)庫課程的同學們,相信本書都可以帶來有價值的幫助和指導。這是一本分布式數(shù)據(jù)庫領域最近幾年最值得推薦的一本書。
?——武新博士易鯨捷信息技術有限公司 CEO
?很高興看到國內有這樣的一線專家著書分享最新核心技術的原理,設計思想和架構。相信這本書的出版會激發(fā)更多的開發(fā)者深入研究基礎核心技術,未來幫助中國成為全球技術的領先者。
?——蔣濤 CSDN創(chuàng)始人、董事長/ 極客幫創(chuàng)投創(chuàng)始合伙人
目錄
序一
序二
序三
序四
前言
第一篇 原理
第1章 分布式數(shù)據(jù)庫系統(tǒng)的
挑戰(zhàn)和原理? 3
1.1 分布式數(shù)據(jù)庫系統(tǒng)的挑戰(zhàn)? 3
1.1.1 分布式系統(tǒng)面臨的問題? 4
1.1.2 數(shù)據(jù)庫面臨的一致性問題? 7
1.1.3 分布式數(shù)據(jù)庫系統(tǒng)面臨的問題? 15
1.2 分布式理論? 20
1.2.1 ACID、BASE與CAP簡析? 21
1.2.2 CAP分布式理論? 23
1.2.3 PACELC理論和CAP新進展? 29
1.3 分布式系統(tǒng)一致性的本質? 30
1.3.1 偏序與全序? 30
1.3.2 有序與并發(fā)? 31
第2章 深入研究一致性? 33
2.1 概述? 34
2.1.1 常見的分布式一致性? 35
2.1.2 科研情況一覽? 38
2.2 結果一致性? 41
2.2.1 共識問題形象化描述:拜占庭將軍問題? 42
2.2.2 結果一致性的應用? 42
2.3 次序一致性? 43
2.3.1 線性一致性? 43
2.3.2 順序一致性? 47
2.3.3 因果一致性? 47
2.3.4 會話一致性? 48
2.4 分布式事務一致性? 49
2.4.1 單機事務的一致性? 49
2.4.2 分布式事務的一致性? 52
2.4.3 分布式一致性與分布式事務一致性的關系? 52
2.5 架構一致性? 54
2.5.1 分布式系統(tǒng)主備一致性? 54
2.5.2 去中心化的分布式系統(tǒng)一致性? 55
第3章 一致性問題的解法? 56
3.1?依賴物理時間引發(fā)的問題? 56
3.2?邏輯時鐘? 57
3.2.1 因果(happened-before)模型? 57
3.2.2?邏輯時鐘的實現(xiàn)? 58
3.2.3?邏輯時鐘的缺點? 58
3.2.4?物理時鐘與同步問題? 59
3.3?向量時鐘? 59
3.4?混合邏輯時鐘? ?61
3.5?Paxos協(xié)議? 64
3.5.1 Paxos協(xié)議解決問題的背景? 64
3.5.2?Paxos協(xié)議中的角色? 64
3.5.3 Basic Paxos協(xié)議? 66
3.5.4?Paxos協(xié)議改進與擴展? 67
3.6?Raft算法? 74
3.6.1?Raft算法基礎? 74
3.6.2?Raft算法詳解? 75
3.6.3 Paxos算法與Raft算法的比較? 78
第4章 分布式事務原理? 81
4.1 概述? 82
4.1.1 單機事務處理技術? 82
4.1.2 分布式事務處理技術? 85
4.2 基本的分布式事務并發(fā)訪問控制機制? 89
4.2.1 封鎖并發(fā)訪問控制算法? 90
4.2.2 TO相關算法? 91
4.2.3 CO算法? 92
4.3 OCC算法? 95
4.3.1 OCC算法的優(yōu)勢與不足? 95
4.3.2 基本的OCC算法? 97
4.3.3 改進的OCC算法? 103
4.3.4 OCC算法與其他并發(fā)算法的融合? 110
4.3.5 分布式OCC算法? 117
4.4 MVCC技術? 121
4.4.1 MVCC技術解決了
什么問題? 122
4.4.2 MVCC技術的核心思想? 123
4.4.3 可串行化的快照隔離? 124
4.4.4 寫快照隔離? 128
4.4.5 MVCC技術實現(xiàn)示例? 132
4.4.6 MVCC技術擴展? 139
4.5 前沿的并發(fā)控制技術? 140
4.5.1 動態(tài)調整時間戳算法? 140
4.5.2 Data-driven算法? 145
4.5.3 面向列的細粒度機制? 148
4.5.4 基于硬件的改進? 149
4.5.5 基于AI的改進? 153
4.5.6 自適應并發(fā)訪問控制算法? 155
4.6 分布式提交技術? 159
4.6.1 兩階段提交? 159
4.6.2 三階段提交? 163
4.6.3 基于Paxos的提交? 164
4.6.4 一階段提交? 166
4.7 可串行化發(fā)展歷史? 166
4.8 其他分布式處理技術? 169
第二篇 架構
第5章 去中心化的分布式數(shù)據(jù)庫架構? 175
5.1 分布式存儲架構? 175
5.1.1 數(shù)據(jù)分布? 176
5.1.2 數(shù)據(jù)管理? 177
5.1.3 多副本與數(shù)據(jù)存儲? 179
5.1.4 存算分離? 180
5.1.5 多讀與多寫? ?184
5.2 分布式查詢優(yōu)化與并行執(zhí)行架構? 187
5.2.1 查詢優(yōu)化? 187
5.2.2 MPP? 188
5.2.3 計算下推/外推? 189
5.3 高可用性架構? 190
5.3.1 高可用衡量指標? 191
5.3.2 高可用性分類? 194
5.3.3 高可用事務? 195
5.3.4 高可用架構? 197
5.4 分布式事務架構? 198
5.4.1 事務管理器在客戶端、中間件、服務器端中的實現(xiàn)? 198
5.4.2 去中心化的并發(fā)事務框架? 201
5.5 可擴展性架構? 202
5.5.1 可擴展性是一種能力? 202
5.5.2 事務處理的可擴展性? 204
5.6 強一致性? 206
5.7 解耦? 206
第6章 新技術與分布式數(shù)據(jù)庫架構? 210
6.1 新硬件? 210
6.2 智能數(shù)據(jù)庫? 211
6.3 云計算與數(shù)據(jù)庫? 213
6.3.1 云原生? 214
6.3.2 云數(shù)據(jù)庫? 216
6.3.3 Serverless數(shù)據(jù)庫? 217
6.4 HTAP? 218
6.4.1 HTAP概念與HTAC架構? 218
6.4.2 行列混存? 220
6.5 下一代數(shù)據(jù)庫? 221
6.5.1 數(shù)據(jù)庫技術簡史? 221
6.5.2 下一代數(shù)據(jù)庫技術特征? 228
第三篇 典型案例
第7章 Spanner深度探索? 233
7.1 從Spanner的兩篇重點論文說起? 233
7.2 Spanner的架構? 234
7.3 Spanner的事務處理模型? 236
7.3.1 讀事務的分類和意義? 237
7.3.2 分布式一致性實現(xiàn)原理? 237
7.3.3 寫操作一致性的實現(xiàn)原理? 239
7.3.4 Truetime事務處理機制的缺點? 241
7.3.5 深入理解Spanner的悲觀策略? 242
7.3.6 Spanner與MVCC? 243
7.3.7 讀副本數(shù)據(jù)? 244
7.3.8 全局讀事務的一致性? 244
7.3.9 只讀事務? 245
7.4 Spanner與CAP? 246
第8章 Percolator事務處理模型? 247
8.1 Percolator的架構? 247
8.2 Percolator的事務處理? 248
8.2.1 事務處理整體過程? 248
8.2.2 數(shù)據(jù)項上存儲的事務信息? 249
8.2.3 事務提交過程? 249
8.2.4 事務讀數(shù)據(jù)過程? 252
8.2.5 Percolator的事務處理示例? 253
第9章 CockroachDB深度探索? 255
9.1 CockroachDB的架構? 255
9.2 CockroachDB事務處理模型? 257
9.2.1 事務處理相關的數(shù)據(jù)結構? 258
9.2.2 事務處理的階段? 259
9.2.3 事務處理的整體過程? 260
9.2.4 事務的并發(fā)沖突? 261
9.2.5 事務自動終止? 264
9.2.6 隔離級別? 265
9.3 分布式一致性實現(xiàn)原理? 265
第10章 其他數(shù)據(jù)庫? 267
10.1 內存型數(shù)據(jù)庫Hekaton的事務處理機制? 267
10.1.1 Hekaton的技術架構? 267
10.1.2 Hekaton的事務管理? 271
10.1.3 Hekaton的并發(fā)控制? 275
10.2 文檔型分布式數(shù)據(jù)庫MongoDB? 276
10.2.1 MongoDB的架構? 277
10.2.2 MongoDB的事務處理技術? 277
10.3 列存分布式數(shù)據(jù)庫HBase? 278
10.3.1 HBase的架構? 278
10.3.2 HBase的事務處理技術? 279
10.4 Greenplum? 280
10.5 圖、鍵值、文檔事務處理技術? 282
10.5.1 圖模型事務處理技術? 283
10.5.2 鍵值、文檔模型事務處理技術? 284
10.6 深入討論數(shù)據(jù)庫架構? 285
10.6.1 數(shù)據(jù)庫的通用架構? 285
10.6.2 事務型數(shù)據(jù)庫的架構? 286
10.6.3 主流分布式數(shù)據(jù)庫的技術比較? 290
參考文獻? 292
上下滑動查看
實拍圖
點擊鏈接了解詳情并購買
掃碼關注【華章計算機】視頻號
每天來聽華章哥講書
更多精彩回顧
書訊 |?10月書訊(上) | ?小長假我讀這些新書
書訊?|?10月書訊(下) | ?小長假我讀這些新書
資訊 |?什么是ETL?一文掌握ETL設計過程
書單 |?8本書助你零基礎轉行數(shù)據(jù)分析崗
干貨 |?架構設計的新思路,《架構之道》讀書筆記
收藏 |?終于有人把微服務講明白了
上新 |?【新書速遞】構建高質量軟件:持續(xù)集成與持續(xù)交付系統(tǒng)實踐
贈書?|?【第78期】學習全球最火編程語言Python,要讀哪些書?
點擊閱讀全文購買
總結
以上是生活随笔為你收集整理的【新书速递】从原理、架构、案例三个维度深度剖析分布式数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机设计网页基础知识,网页设计的基础知
- 下一篇: vue.js 2 引导 (maybe i