注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)數(shù)據(jù)庫數(shù)據(jù)庫設(shè)計(jì)/管理數(shù)據(jù)庫系統(tǒng)內(nèi)幕

數(shù)據(jù)庫系統(tǒng)內(nèi)幕

數(shù)據(jù)庫系統(tǒng)內(nèi)幕

定 價(jià):¥119.00

作 者: (美)亞歷克斯·彼得羅夫
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111655169 出版時(shí)間: 2020-06-01 包裝:
開本: 16開 頁數(shù): 300 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書旨在指導(dǎo)開發(fā)者理解現(xiàn)代數(shù)據(jù)庫和存儲(chǔ)引擎背后的內(nèi)部概念,包含從眾多書籍、論文、博客和多個(gè)開源數(shù)據(jù)庫源代碼中精心選取的相關(guān)材料。本書深入介紹了數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)構(gòu)建塊、分布式系統(tǒng)和數(shù)據(jù)集群,并且指出了現(xiàn)代數(shù)據(jù)庫之間最重要的區(qū)別在于決定存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)分布的子系統(tǒng)。本書分為兩部分:第一部分討論節(jié)點(diǎn)本地的進(jìn)程,并關(guān)注數(shù)據(jù)庫系統(tǒng)的核心組件——存儲(chǔ)引擎,以及最重要的一個(gè)特有元素;第二部分探討如何將多個(gè)節(jié)點(diǎn)組織到一個(gè)數(shù)據(jù)庫集群中。本書主要面向數(shù)據(jù)庫開發(fā)人員,以及使用數(shù)據(jù)庫系統(tǒng)構(gòu)建軟件的人員,如軟件開發(fā)人員、運(yùn)維工程師、架構(gòu)師和工程技術(shù)經(jīng)理。

作者簡(jiǎn)介

  作者簡(jiǎn)介 Alex Petrov是一位數(shù)據(jù)基礎(chǔ)架構(gòu)工程師,數(shù)據(jù)庫和存儲(chǔ)系統(tǒng)的狂熱愛好者,Apache Cassandra 提交者和PMC成員,精通存儲(chǔ)、分布式系統(tǒng)和算法。 譯者簡(jiǎn)介 黃鵬程 畢業(yè)于北京郵電大學(xué),過去八年一直專注于數(shù)據(jù)庫和大數(shù)據(jù)平臺(tái)研發(fā)與架構(gòu)工作。畢業(yè)后就職于中國民生銀行,歷任軟件工程師及大數(shù)據(jù)基礎(chǔ)架構(gòu)團(tuán)隊(duì)負(fù)責(zé)人,目前為阿里云高級(jí)產(chǎn)品專家,負(fù)責(zé)阿里云數(shù)據(jù)庫相關(guān)產(chǎn)品的設(shè)計(jì)與規(guī)劃工作。你可以通過搜索“gnuhpc”在LinkedIn或者微信上找到他。 傅宇 畢業(yè)于南京大學(xué)計(jì)算機(jī)系,專注于數(shù)據(jù)庫技術(shù),現(xiàn)任阿里云技術(shù)專家,擔(dān)任 PolarDB-X 分布式關(guān)系型數(shù)據(jù)庫內(nèi)核研發(fā)工作,在分布式事務(wù)、查詢優(yōu)化器、執(zhí)行器等方向略有經(jīng)驗(yàn),對(duì)數(shù)據(jù)庫和大數(shù)據(jù)領(lǐng)域充滿熱情。個(gè)人博客:https://ericfu.me,知乎賬號(hào) Eric Fu,歡迎與我交流! 張晨 畢業(yè)于上海交通大學(xué)。大數(shù)據(jù)、數(shù)據(jù)庫、分布式系統(tǒng)和函數(shù)式編程愛好者。現(xiàn)于Indeed東京擔(dān)任軟件工程師一職。你可以通過 我的個(gè)人主頁chasezhang.me了解更多信息。

圖書目錄

前言 1

第一部分 存儲(chǔ)引擎

第1章 簡(jiǎn)介與概述 13

1.1 數(shù)據(jù)庫架構(gòu) 14

1.2 內(nèi)存數(shù)據(jù)庫與磁盤數(shù)據(jù)庫 16

1.3 面向列與面向行的數(shù)據(jù)庫 17

1.3.1 面向行的數(shù)據(jù)布局 18

1.3.2 面向列的數(shù)據(jù)布局 19

1.3.3 區(qū)別與優(yōu)化 20

1.3.4 寬列式存儲(chǔ) 20

1.4 數(shù)據(jù)文件和索引文件 21

1.4.1 數(shù)據(jù)文件 22

1.4.2 索引文件 23

1.4.3 間接的主索引 24

1.5 緩沖、不可變性和有序性 25

1.6 本章小結(jié) 26

第2章 B樹基礎(chǔ)知識(shí) 28

2.1 二分搜索樹 28

2.1.1 樹的平衡 29

2.1.2 基于磁盤存儲(chǔ)的樹 31

2.2 基于磁盤的結(jié)構(gòu) 32

2.2.1 機(jī)械硬盤 32

2.2.2 固態(tài)硬盤 32

2.2.3 磁盤存儲(chǔ)結(jié)構(gòu) 34

2.3 無處不在的B樹 35

2.3.1 B樹的層次結(jié)構(gòu) 36

2.3.2 分隔鍵 38

2.3.3 B樹查找復(fù)雜度 39

2.3.4 B樹查找算法 39

2.3.5 鍵的數(shù)目 40

2.3.6 B樹的節(jié)點(diǎn)分裂 40

2.3.7 B樹的節(jié)點(diǎn)合并 42

2.4 本章小結(jié) 43

第3章 文件格式 45

3.1 動(dòng)機(jī) 45

3.2 二進(jìn)制編碼 46

3.2.1 原始類型 46

3.2.2 字符串和變長(zhǎng)數(shù)據(jù) 48

3.2.3 按位打包的數(shù)據(jù):布爾值、枚舉值和標(biāo)志 48

3.3 通用原理 49

3.4 頁的結(jié)構(gòu) 51

3.5 分槽頁 51

3.6 單元格布局 53

3.7 將單元格放進(jìn)分槽頁 54

3.8 管理變長(zhǎng)數(shù)據(jù) 55

3.9 版本 56

3.10 校驗(yàn)和 57

3.11 本章小結(jié) 58

第4章 B樹的實(shí)現(xiàn) 59

4.1 頁頭 59

4.1.1 魔數(shù) 59

4.1.2 同級(jí)指針 60

4.1.3 最右指針 60

4.1.4 節(jié)點(diǎn)的高鍵 61

4.1.5 溢出頁 62

4.2 二分搜索 64

4.3 傳播分裂與合并 65

4.4 再平衡 67

4.5 僅在右側(cè)追加 68

4.6 壓縮 69

4.7 清掃與維護(hù) 70

4.7.1 更新和刪除導(dǎo)致的碎片 70

4.7.2 頁的碎片整理 71

4.8 本章小結(jié) 72

第5章 事務(wù)處理與恢復(fù) 74

5.1 緩沖區(qū)管理 75

5.1.1 緩存語義 77

5.1.2 緩存回收 77

5.1.3 在緩存中鎖定頁 78

5.1.4 頁置換 79

5.2 恢復(fù) 82

5.2.1 日志語義 83

5.2.2 操作日志與數(shù)據(jù)日志 84

5.2.3 steal和force策略 84

5.2.4 ARIES 85

5.3 并發(fā)控制 86

5.3.1 可串行化 86

5.3.2 事務(wù)隔離 87

5.3.3 讀異常和寫異常 88

5.3.4 隔離級(jí)別 88

5.3.5 樂觀并發(fā)控制 90

5.3.6 多版本并發(fā)控制 91

5.3.7 悲觀并發(fā)控制 91

5.3.8 基于鎖的并發(fā)控制 91

5.4 本章小結(jié) 98

第6章 B樹的變體 101

6.1 寫時(shí)復(fù)制 101

6.2 抽象節(jié)點(diǎn)更新 103

6.3 惰性B樹 103

6.3.1 WiredTiger 104

6.3.2 惰性自適應(yīng)樹 105

6.4 FD樹 106

6.4.1 分段級(jí)聯(lián) 106

6.4.2 對(duì)數(shù)級(jí)的有序段 108

6.5 Bw樹 108

6.5.1 更新鏈 109

6.5.2 用CAS控制并發(fā) 109

6.5.3 結(jié)構(gòu)修改操作 110

6.5.4 合并和垃圾收集 111

6.6 緩存無關(guān)B樹 112

6.7 本章小結(jié) 114

第7章 日志結(jié)構(gòu)存儲(chǔ) 116

7.1 LSM樹 117

7.1.1 LSM樹的結(jié)構(gòu) 118

7.1.2 更新與刪除 122

7.1.3 LSM樹的查找 123

7.1.4 合并迭代 124

7.1.5 協(xié)調(diào) 126

7.1.6 LSM樹的維護(hù) 126

7.2 讀寫放大與空間放大 129

7.3 實(shí)現(xiàn)細(xì)節(jié) 130

7.3.1 有序字符串表 130

7.3.2 布隆過濾器 132

7.3.3 跳表 133

7.3.4 磁盤訪問 135

7.3.5 壓縮 136

7.4 無序LSM存儲(chǔ) 136

7.4.1 Bitcask 137

7.4.2 WiscKey 138

7.5 LSM樹中的并發(fā) 139

7.6 日志堆疊 140

7.6.1 閃存轉(zhuǎn)換層 141

7.6.2 文件系統(tǒng)日志記錄 142

7.7 LLAMA與精心堆疊 144

7.8 本章小結(jié) 145

第一部分總結(jié) 147

第二部分 分布式系統(tǒng)

第8章 簡(jiǎn)介與概述 151

8.1 并發(fā)執(zhí)行 151

8.2 分布式計(jì)算的誤區(qū) 153

8.2.1 處理 154

8.2.2 時(shí)鐘和時(shí)間 155

8.2.3 狀態(tài)一致性 156

8.2.4 本地和遠(yuǎn)程執(zhí)行 157

8.2.5 處理故障的需要 157

8.2.6 網(wǎng)絡(luò)分區(qū)和部分故障 157

8.2.7 級(jí)聯(lián)故障 158

8.3 分布式系統(tǒng)抽象 160

8.4 兩將軍問題 165

8.5 FLP不可能定理 166

8.6 系統(tǒng)同步性 167

8.7 故障模型 167

8.7.1 崩潰故障 168

8.7.2 遺漏故障 168

8.7.3 任意故障 169

8.7.4 故障處理 169

8.8 本章小結(jié) 169

第9章 故障檢測(cè) 171

9.1 心跳和ping 172

9.1.1 無超時(shí)的故障檢測(cè)器 173

9.1.2 外包心跳 174

9.2 phi增量故障檢測(cè)器 175

9.3 Gossip和故障檢測(cè) 175

9.4 反向故障檢測(cè) 176

9.5 本章小結(jié) 177

第10章 領(lǐng)導(dǎo)者選舉 179

10.1 霸道選舉算法 180

10.2 依次故障轉(zhuǎn)移 181

10.3 候選節(jié)點(diǎn)/普通節(jié)點(diǎn)優(yōu)化 182

10.4 邀請(qǐng)算法 183

10.5 環(huán)算法 184

10.6 本章小結(jié) 185

第11章 復(fù)制和一致性 187

11.1 實(shí)現(xiàn)可用性 188

11.2 臭名昭著的CAP理論 188

11.2.1 小心使用CAP 189

11.2.2 收成與產(chǎn)量 190

11.3 共享內(nèi)存 191

11.4 順序 192

11.5 一致性模型 193

11.5.1 嚴(yán)格一致性 194

11.5.2 可線性化 194

11.5.3 順序一致性 198

11.5.4 因果一致性 199

11.6 會(huì)話模型 202

11.7 最終一致性 204

11.8 可調(diào)一致性 204

11.9 見證者副本 206

11.10 強(qiáng)最終一致性和CRDT 207

11.11 本章小結(jié) 209

第12章 反熵和傳播 212

12.1 讀修復(fù) 213

12.2 摘要讀 214

12.3 提示移交 215

12.4 Merkle樹 215

12.5 位圖版本向量 216

12.6 Gossip傳播 218

12.6.1 Gossip技術(shù)細(xì)節(jié) 219

12.6.2 覆蓋網(wǎng)絡(luò) 219

12.6.3 混合Gossip 220

12.6.4 局部視圖 221

12.7 本章小結(jié) 222

第13章 分布式事務(wù) 224

13.1 多個(gè)操作的原子性 225

13.2 兩階段提交 226

13.2.1 2PC中的參與者故障 227

13.2.2 2PC中的協(xié)調(diào)者故障 228

13.3 三階段提交 229

13.4 Calvin分布式事務(wù) 231

13.5 Spanner分布式事務(wù) 233

13.6 數(shù)據(jù)庫分區(qū) 235

13.7 Percolator分布式事務(wù) 236

13.8 協(xié)調(diào)避免 238

13.9 本章小結(jié) 240

第14章 共識(shí) 243

14.1 廣播 244

14.2 原子廣播 245

14.2.1 虛同步 245

14.2.2 Zookeeper原子廣播 246

14.3 Paxos 248

14.3.1 Paxos算法 249

14.3.2 Paxos的Quorum 250

14.3.3 故障場(chǎng)景 251

14.3.4 Multi-Paxos 253

14.3.5 快速Paxos 254

14.3.6 平等Paxos 255

14.3.7 柔性Paxos 257

14.3.8 共識(shí)的推廣解法 259

14.4 Raft 261

14.4.1 Raft中的領(lǐng)導(dǎo)者角色 263

14.4.2 故障場(chǎng)景 264

14.5 拜占庭共識(shí) 266

14.5.1 PBFT算法 266

14.5.2 恢復(fù)和檢查點(diǎn) 268

14.6 本章小結(jié) 269

第二部分總結(jié) 272

參考文獻(xiàn) 275

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)