大規模分散式儲存系統:原理解析與架構實戰

CiCi島發表於2018-12-04

網站

更多書籍點選進入>> CiCi島

下載

電子版僅供預覽及學習交流使用,下載後請24小時內刪除,支援正版,喜歡的請購買正版書籍

封頁

封頁

編輯推薦

高階技術專家(OceanBase核心開發人員)撰寫,陽振坤、章文嵩、楊衛華、汪源、餘鋒(褚霸)、賴春波等來自阿里、新浪、網易和百度的資深技術專家聯袂推薦。   系統講解構建大規模儲存系統的核心技術和原理,詳細分析Google、Amazon、Microsoft和的大規模分散式儲存系統的原理。   實戰性強,通過對*的分散式資料庫OceanBase的實現細節進行深入分析,完整講解了大規模分散式儲存系統的架構方法與應用實踐。

內容簡介

本書是分散式系統領域的經典著作,由高階技術專家“阿里日照”(OceanBase核心開發人員)撰寫,陽振坤、章文嵩、楊衛華、汪源、餘鋒(褚霸)、賴春波等來自阿里、新浪、網易和百度的資深技術專家聯袂推薦。理論方面,不僅講解了大規模分散式儲存系統的核心技術和基本原理,而且對谷歌、亞馬遜、微軟和等國際型大網際網路公司的大規模分散式儲存系統進行了分析;實戰方面,首先通過對*的分散式資料庫OceanBase的實現細節的深入剖析完整地展示了大規模分散式儲存系統的架構與設計過程,然後講解了大規模分散式儲存技術在雲端計算和大資料領域的實踐與應用。   本書內容分為四個部分:基礎篇——分散式儲存系統的基礎知識,包含單機儲存系統的知識,如資料模型、事務與併發控制、故障恢復、儲存引擎、壓縮/解壓縮等;分散式系統的資料分佈、複製、一致性、容錯、可擴充套件性等。範型篇——介紹谷歌、亞馬遜、微軟、等著名網際網路公司的大規模分散式儲存系統架構,涉及分散式檔案系統、分散式鍵值系統、分散式表格系統以及分散式資料庫技術等。實踐篇——以的分散式資料庫OceanBase為例,詳細介紹分散式資料庫內部實現,以及實踐過程中的經驗。專題篇——介紹分散式系統的主要應用:雲端儲存和大資料,這些是近年來的熱門領域,本書介紹了雲端儲存平臺、技術與安全,以及大資料的概念、流式計算、實時分析等。

作者簡介

楊傳輝 高階技術專家,花名日照,OceanBase核心開發人員,對分散式系統的理論和工程實踐有深刻理解。曾在百度作為核心成員參與類MapReduce系統、類Bigtable系統和百度分散式訊息佇列等底層基礎設施架構工作。熱衷於分散式儲存和計算系統設計,樂於分享,有技術部落格NosqlNotes(http://nosqlnotes.net)。   高階技術專家(OceanBase核心開發人員)撰寫,陽振坤、章文嵩、楊衛華、汪源、餘鋒(褚霸)、賴春波等來自、新浪、網易和百度的資深技術專家聯袂推薦。   系統講解構建大規模儲存系統的核心技術和原理,詳細分析Google、Amazon、Microsoft和的大規模分散式儲存系統的原理。   實戰性強,通過對*的分散式資料庫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
參考資料

媒體評論

分散式儲存系統是分散式系統中最基礎、最複雜的部分,它涉及資料的持久化、一致性和可用性,針對不同的訪問需求在架構上有很多不同的取捨。本書作者在分散式儲存系統方面有多年的實踐經驗,將所見所思所得凝聚成這本書,其中涵蓋很多典型的分散式儲存系統,是瞭解分散式系統的很好讀物。

—— 章文嵩,高階研究員,核心系統部負責人,LVS作者

  本書覆蓋的資訊量及知識點非常全面,是瞭解分散式儲存不可多得的書籍,對指導分散式領域開發也具有重要參考價值。

  —— 楊衛華,新浪微博首席架構師

  分散式儲存這個領域面寬水深,無論是分散式理論、儲存還是案例,鋪開寫都是卷帙浩繁。本書一是勝在圍繞
廣泛實用價值的基於通用硬體構建大規模分散式儲存系統這一核心進行了很好的材料組織選取;二是勝在對OceanBase實現機制的深度剖析。本書作者是OceanBase的核心開發人員,對分散式儲存系統身體力行,自然有很多獨特的洞見。因此,本書實用性和獨特性俱佳,必須入手一讀。

—— 汪源,網易杭州研究院副院長

  分散式系統固有的複雜性加上大規模儲存系統的工程挑戰,讓真正理解這個體系變得非常困難。作者在相關領域擁有多年一線開發經驗,從實踐工作中將相關知識萃取出來,清晰地呈現給讀者。因此,我願意將此書推薦給真正想了解分散式儲存系統原理並勇於實踐的讀者。

—— 餘鋒,*資深技術專家,花名褚霸,有知名部落格:http://blog.yufeng.info/

  作者先後在百度、*等公司長期致力於大規模儲存和分散式等技術的研究,對BigTable、Dynamo等業界知名儲存系統也有深入的瞭解,同時在Pyramid、OceanBase等系統的架構、設計和開發上有過大量的實踐工作。大規模儲存是網際網路和雲端計算產業的基石,而作者的這些技術是能真正應用在工業系統中的。難能可貴的是,作者將這些技術細節和系統如此有條理地展現出來,無論對大規模儲存和分散式領域的初學者還是進階者,都有巨大的幫助。

—— 賴春波,百度架構師,分散式儲存技術負責人

相關文章