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