深入理解分佈式共識算法
釋慧利
買這商品的人也買了...
-
$480$379 -
$450$356 -
$534$507 -
$480$360 -
$520$442 -
$267深入淺出 SSD:固態存儲核心技術、原理與實戰
-
$1,280$998 -
$594$564 -
$1,000$780 -
$690$587 -
$607Go 語言高級開發與實戰
-
$780$608 -
$580$458 -
$880$695 -
$720$612 -
$539$512 -
$680$510 -
$380$342 -
$680$537 -
$780$616 -
$500$395 -
$580$458 -
$460$414 -
$556函數式設計:原則、模式與實踐
-
$720$562
相關主題
商品描述
目錄大綱
目 錄
第1篇 分佈式相關概念與定理
第1章 分佈式共識算法概述 2
1.1 分佈式架構的演進 2
1.2 集群與狀態機 3
1.2.1 分佈式與集群 3
1.2.2 容錯能力 4
1.2.3 狀態機簡介 4
1.3 共識簡介 5
1.3.1 共識的概念 5
1.3.2 共識與集群 5
1.3.3 共識與副本 6
1.3.4 共識與一致性 7
1.3.5 共識算法的發展歷程 7
1.4 拜占庭故障 7
1.4.1 拜占庭的背景知識 7
1.4.2 拜占庭解決方案 8
1.5 本章小結 10
第2章 從ACID和BASE到CAP 11
2.1 ACID——追求一致性 11
2.2 BASE理論——追求可用性 11
2.2.1 BASE理論的三個方面 12
2.2.2 BASE理論的應用 12
2.3 CAP——分佈式系統的PH試紙 13
2.3.1 CAP定理 14
2.3.2 為什麽C、A、P三者不可兼得 15
2.3.3 CAP的應用 16
2.4 本章小結 16
第2篇 常見分佈式共識算法原理與實戰
第3章 2PC、3PC——分佈式事務的解決方案 18
3.1 二階段提交協議 18
3.1.1 二階段提交協議簡述 18
3.1.2 故障恢復 20
3.1.3 二階段提交協議的優缺點 23
3.1.4 空回滾和防懸掛 23
3.2 三階段提交協議 25
3.2.1 三階段提交協議簡述 25
3.2.2 故障恢復 28
3.2.3 三階段提交協議的優缺點 29
3.3 二階段提交協議在Seata中的應用 29
3.3.1 AT模式 30
3.3.2 事務管理者 32
3.3.3 資源管理者 35
3.3.4 事務協調者 42
3.4 本章小結 46
第4章 Paxos——分佈式共識算法 48
4.1 Paxos的誕生 48
4.2 初探Paxos 49
4.2.1 基本概念 49
4.2.2 角色 50
4.2.3 階段 51
4.3 Paxos詳解 54
4.3.1 Paxos模擬 54
4.3.2 Prepare階段 55
4.3.3 Accept階段 56
4.3.4 活鎖 58
4.3.5 提案編號選定 59
4.4 Paxos的推導過程 60
4.4.1 推導 60
4.4.2 多數派的本質 63
4.5 Multi Paxos詳解 64
4.5.1 Multi Paxos簡介 64
4.5.2 Leader選舉 66
4.6 工程實現 68
4.6.1 一些優化 68
4.6.2 對讀請求進行優化 70
4.6.3 並行協商 71
4.6.4 Instance的重確認 72
4.6.5 幽靈日誌 73
4.7 Paxos在PhxPaxos中的應用 74
4.7.1 PhxPaxos分析 75
4.7.2 PhxPaxos初始化 80
4.7.3 協商提案 82
4.7.4 數據同步 91
4.7.5 Master選舉 95
4.7.6 成員變更 98
4.8 本章小結 99
4.9 練習題 100
第5章 ZAB——ZooKeeper技術核心 101
5.1 Chubby簡介 101
5.1.1 Chubby是什麽 101
5.1.2 為什麽選擇鎖服務 102
5.1.3 需求分析 103
5.1.4 Chubby集群架構 104
5.2 ZooKeeper的簡單應用 107
5.2.1 ZooKeeper是什麽 107
5.2.2 數據節點 108
5.2.3 Watch機制 110
5.2.4 ACL權限控制 111
5.2.5 會話 113
5.2.6 讀請求處理 113
5.3 ZAB設計 114
5.3.1 ZooKeeper背景分析 114
5.3.2 為什麽ZooKeeper不直接使用Paxos 116
5.3.3 ZAB簡介 118
5.3.4 事務標識符 120
5.3.5 多數派機制 121
5.3.6 Leader周期 121
5.4 ZAB描述 122
5.4.1 Leader選舉階段 122
5.4.2 成員發現階段 122
5.4.3 數據同步階段 123
5.4.4 消息廣播階段 124
5.4.5 算法小結 124
5.5 ZooKeeper中的ZAB實現 125
5.5.1 選舉階段 126
5.5.2 成員發現階段 129
5.5.3 數據同步階段 130
5.5.4 消息廣播階段 133
5.5.5 算法小結 134
5.5.6 算法模擬 135
5.5.7 提案的安全性 139
5.6 ZooKeeper成員變更 140
5.6.1 變更過程 141
5.6.2 並行變更 142
5.7 ZooKeeper源碼實戰 142
5.7.1 啟動 142
5.7.2 Leader選舉 144
5.7.3 Follower和Leader初始化 148
5.7.4 成員發現階段 151
5.7.5 數據同步階段 154
5.7.6 消息廣播階段 157
5.8 本章小結 162
5.9 練習題 163
第6章 Raft——共識算法的寵兒 164
6.1 Raft簡介 164
6.1.1 Raft誕生的背景 164
6.1.2 可理解性 165
6.1.3 基本概念 165
6.2 Raft算法描述 167
6.2.1 Leader選舉 167
6.2.2 日誌復制 170
6.2.3 日誌對齊 173
6.2.4 幽靈日誌 174
6.2.5 安全性 175
6.2.6 Raft小結 176
6.3 算法模擬 177
6.3.1 Leader選舉 177
6.3.2 日誌復制 178
6.3.3 日誌對齊 180
6.4 成員變更 181
6.4.1 聯合共識 182
6.4.2 工程實踐 185
6.4.3 單個成員變更 188
6.5 日誌壓縮 191
6.6 網絡分區 192
6.6.1 成員變更中的分區 192
6.6.2 對稱網絡分區 193
6.6.3 非對稱網絡分區 194
6.7 非事務請求 194
6.7.1 線性一致性 195
6.7.2 Leader Read方案 196
6.7.3 Raft Log Read方案 196
6.7.4 Read Index方案 196
6.7.5 Lease Read方案 197
6.8 Parallel Raft並行協商 198
6.8.1 亂序協商 199
6.8.2 Merge階段 200
6.9 Raft源碼實戰——SOFAJRaft 202
6.9.1 SOFAJRaft簡介 203
6.9.2 Leader選舉 205
6.9.3 日誌復制 212
6.9.4 非事務請求 219
6.9.5 成員變更 221
6.10 本章小結 223
6.10.1 Raft與Paxos的異同 223
6.10.2 Raft與ZAB的異同 224
6.11 練習題 225
第3篇 Paxos變種算法集合
第7章 Paxos變種算法的發展史 228
7.1 Disk Paxos簡介 228
7.1.1 算法描述 229
7.1.2 Disk Paxos小結 230
7.2 Cheap Paxos簡介 230
7.2.1 算法描述 231
7.2.2 Cheap Paxos小結 232
7.3 Generalized Paxos簡介 233
7.4 Stoppable Paxos簡介 234
7.5 Mencius簡介 235
7.6 Vertical Paxos簡介 237
7.6.1 算法描述 237
7.6.2 算法模擬 238
7.6.3 Vertical Paxos小結 240
7.7 本章小結 240
第8章 Fast Paxos——C/S架構的福音 242
8.1 Fast Paxos簡介 242
8.1.1 背景介紹 242
8.1.2 基本概念 243
8.2 算法詳述 244
8.2.1 算法設計 244
8.2.2 Fast Paxos模擬 245
8.2.3 Learn階段 246
8.3 Quorum推導 246
8.3.1 決策條件 247
8.3.2 計算Quorum 248
8.4 Classic Round簡介 249
8.4.1 提案沖突 249
8.4.2 選擇提案值的規則 250
8.4.3 證明 252
8.5 提案恢復 253
8.5.1 基於協調者的恢復 253
8.5.2 基於非協調者的恢復 254
8.6 本章小結 254
第9章 EPaxos——去中心化共識 255
9.1 EPaxos簡介 255
9.1.1 共識算法對比 255
9.1.2 認識EPaxos算法 256
9.1.3 基本概念 258
9.2 協商協議 260
9.2.1 Prepare階段 260
9.2.2 PreAccept階段 263
9.2.3 Paxos-Accept階段 264
9.2.4 Commit階段 265
9.2.5 特殊的Quorum 266
9.3 執行協議 268
9.3.1 互相依賴 268
9.3.2 執行過程 269
9.3.3 拓撲排序 270
9.3.4 尋找強連通分量 271
9.3.5 EPaxos排序 272
9.4 算法證明 272
9.4.1 執行的一致性 273
9.4.2 執行的順序性 274
9.5 Optimized-EPaxos簡介 274
9.5.1 Prepare階段 275
9.5.2 論證QuorumFast 278
9.6 算法模擬 279
9.6.1 協商協議 279
9.6.2 Prepare階段 282
9.7 成員變更 284
9.8 工程優化 285
9.8.1 巨大的消息體 285
9.8.2 讀請求處理 285
9.9 本章小結 286
9.9.1 EPaxos與Paxos的異同 286
9.9.2 EPaxos與Raft、ZAB、Multi Paxos的異同 287
9.10 練習題 288
第4篇 番外——FLP定理
第10章 FLP——不可能定理 290
10.1 FLP定理概述 290
10.1.1 FLP簡介 290
10.1.2 FLP的環境模型 290
10.1.3 Paxos為什麽是正確的 291
10.2 FLP的證明 292
10.2.1 基礎定義 292
10.2.2 完全正確 292
10.2.3 引理1 293
10.2.4 引理2 293
10.2.5 引理3 294
10.2.6 證明 296
10.3 FLP的指導意義 296
練習題答案 298
參考文獻 303