數據密集型應用系統設計 (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems)

馬丁·科勒普曼 (Martin Kleppmann)

已絕版

買這商品的人也買了...

相關主題

商品描述

全書分為三大部分:

第一部分,主要討論有關增強數據密集型應用系統所需的若乾基本原則。首先開篇第1章即瞄準目標:可靠性、可擴展性與可維護性,如何認識這些問題以及如何達成目標。第2章我們比較了多種不同的數據模型和查詢語言,討論各自的適用場景。接下來第3章主要針對存儲引擎,即數據庫是如何安排磁盤結構從而提高檢索效率。第4章轉向數據編碼(序列化)方面,包括常見模式的演化歷程。

第二部分,我們將從單機的數據存儲轉向跨機器的分佈式系統,這是擴展性的重要一步,但隨之而來的是各種挑戰。所以將依次討論數據遠程復制(第5章)、數據分區(第6章)以及事務(第7章)。接下來的第8章包括分佈式系統的更多細節,以及分佈式環境如何達成一致性與共識(第9章)。

第三部分,主要針對產生派生數據的系統,所謂派生數據主要指在異構系統中,如果無法用一個數據源來解決所有問題,那麽一種自然的方式就是集成多個不同的數據庫、緩存模塊以及索引模塊等。首先第10章以批處理開始來處理派生數據,緊接著第11章採用流式處理。第12章總結之前介紹的多種技術,並分析討論未來構建可靠、可擴展和可維護應用系統可能的新方向或方法。


  本規程適用於新建或擴建的汽輪發電機及燃氣輪機單機容量為50MW及以上的火力發電廠,水輪發電機單機容量為10MW及以上的水力發電廠,發電/電動機組單機容量為10MW及以上的抽水蓄能發電廠以及交流額定電壓為35kV~500kV的變電所和直流額定電壓為100kV~500kV的直流換流站。

作者簡介

作者簡介

Martin Kleppmann是英國劍橋大學分佈式系統方向的研究員。此前,他曾是LinkedIn和Rapportive等互聯網公司的軟件工程師,負責大規模數據基礎設施建設。在此過程中他遇到過一些困難,因此他希望這本書能夠幫助讀者避免重蹈覆轍。 Martin還是一位活躍的會議演講者、博主和開源貢獻者。他認為,每個人都應該學習深刻的技術理念,對技術的深入理解能幫助我們開發出更好的軟件。

譯者簡介

趙軍平, 大數據存儲與分析資深開發者與推廣者(EMC 10餘年),GPU異構計算的親歷者。中國計算機協會專家委員,DELL EMC資深架構師。 12年系統研發、創新與團隊管理經驗,擅長數據存儲與保護, 雲計算與大數據實時分析,GPU異構加速優化等。相關領域已申請中、美技術專利100餘項,並多次在SNIA,LinuxConf,Hadoop Summit, Nvidia GPU Tech Conf等做技術分享,持續關注數據密集和計算密集相關技術的演進、融合與賦能推廣。
呂雲松,北京大學計算機碩士,碩士及DELL EMC中國研究院實習期間專注於大數據實時流式處理相關的研究。現就職於華為2012中軟院黎曼實驗室,主要從事深度學習的研發。
耿煜,DELL EMC架構師兼GTM負責人,致力於推廣企業級數字化轉型方案。深耕分佈式架構以及雲計算12年,先後任職於ChinaCache,Sun Microsystems以及EMC等公司。
李三平,美國麻省大學計算機工程專業博士,DELL EMC中國研究院首席科學家,研究方向為機器學習、深度學習、智能運維、遙感影像等。已在IEEE Transactions期刊和會議上發表論文數十篇,申請美國專利20餘項。推崇簡約,熱衷機器學習。

目錄大綱

前言................................................. ....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