標籤
《大規模分佈式存儲系統:原理解析與架構實戰》是分佈式系統領域的經典著作,由阿里巴巴高級技術專家“阿里日照”(OceanBase核心開發人員)撰寫,陽振坤、章文嵩、楊衛華、汪源、餘鋒(褚霸)、賴春波等來自阿里、新浪、網易和百度的資深技術專家聯袂推薦。理論方面,不僅講解了大規模分佈式存儲系統的核心技術和基本原理,而且對谷歌、亞馬遜、微軟和阿里巴巴等國際型大互聯網公司的大規模分佈式存儲系統進行了分析;實戰方面,首先通過對阿里巴巴的分佈式數據庫OceanBase的實現細節的深入剖析完整地展示了大規模分佈式存儲系統的架構與設計過程,然後講解了大規模分佈式存儲技術在雲計算和大數據領域的實踐與應用。 《大規模分佈式存儲系統:原理解析與架構實戰》內容分為四個部分:基礎篇——分佈式存儲系統的基礎知識,包含單機存儲系統的知識,如數據模型、事務與併發控制、故障恢復、存儲引擎、壓縮/解壓縮等;分佈式系統的數據分佈、複製、一致性、容錯、可擴展性等。範型篇——介紹谷歌、亞馬遜、微軟、阿里巴巴等著名互聯網公司的大規模分佈式存儲系統架構,涉及分佈式文件系統、分佈式鍵值系統、分佈式表格系統以及分佈式數據庫技術等。實踐篇——以阿里巴巴的分佈式數據庫OceanBase為例,詳細介紹分佈式數據庫內部實現,以及實踐過程中的經驗。專題篇——介紹分佈式系統的主要應用:雲存儲和大數據,這些是近年來的熱門領域,本書介紹了雲存儲平臺、技術與安全,以及大數據的概念、流式計算、實時分析等。
前言 第1章 概述 1.1 分佈式存儲概念 1.2 分佈式存儲分類 第一篇 基礎篇 第2章 單機存儲系統 2.1 硬件基礎 2.1.1 CPU架構 2.1.2 IO總線 2.1.3 網絡拓撲 2.1.4 性能參數 2.1.5 存儲層次架構 2.2 單機存儲引擎 2.2.1 哈希存儲引擎 2.2.2 B樹存儲引擎 2.2.3 LSM樹存儲引擎 2.3 數據模型 2.3.1 文件模型 2.3.2 關係模型 2.3.3 鍵值模型 2.3.4 SQL與NoSQL 2.4 事務與併發控制 2.4.1 事務 2.4.2 併發控制 2.5 故障恢復 2.5.1 操作日誌 2.5.2 重做日誌 2.5.3 優化手段 2.6 數據壓縮 2.6.1 壓縮算法 2.6.2 列式存儲 第3章 分佈式系統 3.1 基本概念 3.1.1 異常 3.1.2 一致性 3.1.3 衡量指標 3.2 性能分析 3.3 數據分佈 3.3.1 哈希分佈 3.3.2 順序分佈 3.3.3 負載均衡 3.4 複製 3.4.1 複製的概述 3.4.2 一致性與可用性 3.5 容錯 3.5.1 常見故障 3.5.2 故障檢測 3.5.3 故障恢復 3.6 可擴展性 3.6.1 總控節點 3.6.2 數據庫擴容 3.6.3 異構系統 3.7 分佈式協議 3.7.1 兩階段提交協議 3.7.2 Paxos協議 3.7.3 Paxos與2PC 3.8 跨機房部署 第二篇 範型篇 第4章 分佈式文件系統 4.1 Google文件系統 4.1.1 系統架構 4.1.2 關鍵問題 4.1.3 Master設計 4.1.4 ChunkServer設計 4.1.5 討論 4.2 Taobao File System 4.2.1 系統架構 4.2.2 討論 4.3 Facebook Haystack 4.3.1 系統架構 4.3.2 討論 4.4 內容分發網絡 4.4.1 CDN架構 4.4.2 討論 第5章 分佈式鍵值系統 5.1 Amazon Dynamo 5.1.1 數據分佈 5.1.2 一致性與複製 5.1.3 容錯 5.1.4 負載均衡 5.1.5 讀寫流程 5.1.6 單機實現 5.1.7 討論 5.2 淘寶Tair 5.2.1 系統架構 5.2.2 關鍵問題 5.2.3 討論 第6章 分佈式表格系統 6.1 Google Bigtable 6.1.1 架構 6.1.2 數據分佈 6.1.3 複製與一致性 6.1.4 容錯 6.1.5 負載均衡 6.1.6 分裂與合併 6.1.7 單機存儲 6.1.8 垃圾回收 6.1.9 討論 6.2 Google Megastore 6.2.1 系統架構 6.2.2 實體組 6.2.3 併發控制 6.2.4 複製 6.2.5 索引 6.2.6 協調者 6.2.7 讀取流程 6.2.8 寫入流程 6.2.9 討論 6.3 Windows Azure Storage 6.3.1 整體架構 6.3.2 文件流層 6.3.3 分區層 6.3.4 討論 第7章 分佈式數據庫 7.1 數據庫中間層 7.1.1 架構 7.1.2 擴容 7.1.3 討論 7.2 Microsoft SQL Azure 7.2.1 數據模型 7.2.2 架構 7.2.3 複製與一致性 7.2.4 容錯 7.2.5 負載均衡 7.2.6 多租戶 7.2.7 討論 7.3 Google Spanner 7.3.1 數據模型 7.3.2 架構 7.3.3 複製與一致性 7.3.4 TrueTime 7.3.5 併發控制 7.3.6 數據遷移 7.3.7 討論 第三篇 實踐篇 第8章 OceanBase架構初探 8.1 背景簡介 8.2 設計思路 8.3 系統架構 8.3.1 整體架構圖 8.3.2 客戶端 8.3.3 RootServer 8.3.4 MergeServer 8.3.5 ChunkServer 8.3.6 UpdateServer 8.3.7 定期合併&數據分發 8.4 架構剖析 8.4.1 一致性選擇 8.4.2 數據結構 8.4.3 可靠性與可用性 8.4.4 讀寫事務 8.4.5 單點性能 8.4.6 SSD支持 8.4.7 數據正確性 8.4.8 分層結構 第9章 分佈式存儲引擎 9.1 公共模塊 9.1.1 內存管理 9.1.2 基礎數據結構 9.1.3 鎖 9.1.4 任務隊列 9.1.5 網絡框架 9.1.6 壓縮與解壓縮 9.2 RootServer實現機制 9.2.1 數據結構 9.2.2 子表複製與負載均衡 9.2.3 子表分裂與合併 9.2.4 UpdateServer選主 9.2.5 RootServer主備 9.3 UpdateServer實現機制 9.3.1 存儲引擎 9.3.2 任務模型 9.3.3 主備同步 9.4 ChunkServer實現機制 9.4.1 子表管理 9.4.2 SSTable 9.4.3 緩存實現 9.4.4 IO實現 9.4.5 定期合併&數據分發 9.4.6 定期合併限速 9.5 消除更新瓶頸 9.5.1 讀寫優化回顧 9.5.2 數據旁路導入 9.5.3 數據分區 第10章 數據庫功能 10.1 整體結構 10.2 只讀事務 10.2.1 物理操作符接口 10.2.2 單表操作 10.2.3 多表操作 10.2.4 SQL執行本地化 10.3 寫事務 10.3.1 寫事務執行流程 10.3.2 多版本併發控制 10.4 OLAP業務支持 10.4.1 併發查詢 10.4.2 列式存儲 10.5 特色功能 10.5.1 大表左連接 10.5.2 數據過期與批量刪除 第11章 質量保證、運維及實踐 11.1 質量保證 11.1.1 RD開發 11.1.2 QA測試 11.1.3 試運行 11.2 使用與運維 11.2.1 使用 11.2.2 運維 11.3 應用 11.3.1 收藏夾 11.3.2 天貓評價 11.3.3 直通車報表 11.4 最佳實踐 11.4.1 系統發展路徑 11.4.2 人員成長 11.4.3 系統設計 11.4.4 系統實現 11.4.5 使用與運維 11.4.6 工程現象 11.4.7 經驗法則 第四篇 專題篇 第12章 雲存儲 12.1 雲存儲的概念 12.2 雲存儲的產品形態 12.3 雲存儲技術 12.4 雲存儲的核心優勢 12.5 雲平臺整體架構 12.5.1 Amazon雲平臺 12.5.2 Google雲平臺 12.5.3 Microsoft雲平臺 12.5.4 雲平臺架構 12.6 雲存儲技術體系 12.7 雲存儲安全 第13章 大數據 13.1 大數據的概念 13.2 MapReduce 13.3 MapReduce擴展 13.3.1 Google Tenzing 13.3.2 Microsoft Dryad 13.3.3 Google Pregel 13.4 流式計算 13.4.1 原理 13.4.2 Yahoo S4 13.4.3 Twitter Storm 13.5 實時分析 13.5.1 MPP架構 13.5.2 EMC Greenplum 13.5.3 HP Vertica 13.5.4 Google Dremel 參考資料
《數據密集型應用系統設計》
全書分為三大部分: 第一部分,主要討論有關增強數據密集型應用系統所需的若干基本原則。首先開篇第1章即瞄準目標:可靠性、可擴展性與可維護性,如何認識這些問題以及如何達成目標。第2章我們比較了多種不同的數據模型和查詢語言,討論各自的適用場景。接下來第3章主要針對存儲引擎,即數據庫是如何安排磁盤結構從而提...
查看詳情 →《鳳凰架構》
這是一本從架構視角講解如何構建大型分佈式系統的著作,是超級暢銷書《深入理解Java虛擬機》的作者周志明多年架構和研發經驗的總結,得到了多位行業資深架構專家的聯袂推薦。 全書共16章,分為演進中的架構、架構師的視角、分佈式的基石、不可變基礎設施和技術方法論五部分。 第一部分 演進中的架構(第1章) 著...
查看詳情 →《掘金大數據》
在數據橫向融合的時代,充分挖掘數據金礦及盤活數據資產,是企業發展和轉型的關鍵所在。電信運營商以其數據特殊性,必將成為大數據領域的領航者、生力軍。各行業的大數據從業者要如何從電信業的大數據中挖掘價值呢? 本書徹底揭開電信運營商數據的神秘面紗,系統介紹了大數據的發展歷程,主要的數據挖掘方法,電信運營商在...
查看詳情 →《操縱》
大數據時代,數據不僅是重要的商業資源,更是基礎性、關鍵性的國家戰略資源。數據安全不僅與國家政治、經濟、文化、軍事等諸多領域的安全建立起越來越直接的關係,而且事關公民個人權益保護,成為影響國家安全和國家治理的新因素。 本書是一部解讀大數據時代輿論操縱的集成之作,從落實總體國家安全觀高度,基於全球視野,...
查看詳情 →