內容簡介
全書分為三大部分:
第一部分,主要討論有關增強數據密集型套用系統所需的若干基本原則。首先開篇第1章即瞄準目標:可靠性、可擴展性與可維護性,如何認識這些問題以及如何達成目標。第2章我們比較了多種不同的數據模型和查詢語言,討論各自的適用場景。接下來第3章主要針對存儲引擎,即資料庫是如何安排
磁碟結構從而提高檢索效率。第4章轉向數據編碼(序列化)方面,包括常見模式的演化歷程。
第二部分,我們將從單機的數據存儲轉向跨機器的分散式系統,這是擴展性的重要一步,但隨之而來的是各種挑戰。所以將依次討論數據遠程複製(第5章)、數據分區(第6章)以及事務(第7章)。接下來的第8章包括分散式系統的更多細節,以及分散式環境如何達成一致性與共識(第9章)。
第三部分,主要針對產生派生數據的系統,所謂派生數據主要指在異構系統中,如果無法用一個數據源來解決所有問題,那么一種自然的方式就是集成多個不同的資料庫、快取模組以及索引模組等。首先第10章以批處理開始來處理派生數據,緊接著第11章採用流式處理。第12章總結之前介紹的多種技術,並分析討論未來構建可靠、可擴展和可維護套用系統可能的新方向或方法。
作者簡介
Martin Kleppmann是
英國劍橋大學分散式系統方向的研究員。此前,他曾是LinkedIn和Rapportive等網際網路公司的軟體工程師,負責大規模
數據基礎設施建設。在此過程中他遇到過一些困難,因此他希望這本書能夠幫助讀者避免重蹈覆轍。Martin還是一位活躍的會議演講者、博主和開源貢獻者。他認為,每個人都應該學習深刻的技術理念,對技術的深入理解能幫助我們開發出更好的軟體。
譯者簡介
趙軍平, 大數據存儲與分析資深開發者與推廣者,GPU異構計算的親歷者。
中國計算機協會專家委員,DELL EMC資深架構師。12年系統研發、創新與團隊管理經驗,擅長數據存儲與保護, 雲計算與大數據實時分析,GPU異構加速最佳化等,多次在SNIA,LinuxConf,Hadoop Summit, Nvidia GPU Tech Conf等做技術分享,持續關注數據密集和計算密集相關技術的演進、融合與賦能推廣。
圖書目錄
前言 .....................................................1
第一部分 數據系統基礎
第1章 可靠、可擴展與可維護的套用系統 ................... 11
認識數據系統 ...........................................12
可靠性 ..................................................14
可擴展性 ................................................18
可維護性 ................................................25
小結 .....................................................28
第2章 數據模型與查詢語言 ............................... 33
關係模型與文檔模型 .......................................34
數據查詢語言 ...........................................46
圖狀數據模型 ......................................52
小結 ...................................................65
第3章 數據存儲與檢索 .................................. 71
資料庫核心:數據結構 ...................................72
事務處理與分析處理 ...................................89
列式存儲 .........................................94
小結 ..............................................101
第4章 數據編碼與演化 .............................. 109
數據編碼格式 .................................... 110
數據流模式 ......................................124
小結 .............................................134
第二部分 分散式數據系統
第5章 數據複製 ................................. 145
主節點與從節點 ..................................146
複製滯後問題 ......................................154
多主節點複製 .......................................160
無主節點複製 .....................................168
小結 ..............................................181
第6章 數據分區 ............................... 189
數據分區與數據複製 .................................190
鍵-值數據的分區 ...................................190
分區與二級索引 ...................................195
分區再平衡 ....................................198
請求路由 ..................................202
小結 .................................204
第7章 事務 .............................. 211
深入理解事務 ......................................212
弱隔離級別 .................................221
串列化 ...........................................237
小結 ...........................................250
第8章 分散式系統的挑戰 ...................... 259
故障與部分失效 ...............................260
不可靠的網路 ..................................262
不可靠的時鐘 ..................................271
知識,真相與謊言 ...............................282
小結 ..........................................292
第9章 一致性與共識 ..................... 303
一致性保證 ....................................304
可線性化 ........................................305
順序保證 ........................................319
分散式事務與共識 .................................330
小結 ...............................................349
第三部分 派生數據
第10章 批處理系統 ................................ 367
使用UNIX工具進行批處理 .............................368
MapReduce與
分散式檔案系統 .........................375
超越MapReduce ....................................394
小結 ............................................403
第11章 流處理系統 .............................. 413
傳送事件流 .......................................414
資料庫與流 .......................................424
流處理 .........................................435
小結 ............................................449
第12章 數據系統的未來 ............................ 461
數據集成 .........................................461
分拆資料庫 .......................................469
端到端的正確性 ....................................484
做正確的事情 .......................................500
小結 ..............................................509
術語表 ............................................ 521