大規模分佈式存儲系統 (原理解析與架構實戰)

楊傳輝

  • 出版商: 機械工業
  • 出版日期: 2013-09-06
  • 定價: $354
  • 售價: 8.5$301
  • 語言: 簡體中文
  • 頁數: 293
  • ISBN: 7111430522
  • ISBN-13: 9787111430520
  • 無法訂購

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

商品描述

 

<內容簡介>

楊傳輝等編著的《大規模分佈式存儲系統(原理解析與架構實戰)》是分佈式系統領域的經典著作,由阿裡巴巴高級技術專家「阿裡日照」(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
參考資料

 

<作者介紹>

楊傳輝
楊傳輝,阿裡巴巴高級技術專家,花名日照,OceanBase核心開發人員,對分佈式系統的理論和工程實踐有深刻理解。曾在百度作為核心成員參與類MapReduce系統、類Bigtable系統和百度分佈式消息隊列等底層基礎設施架構工作。熱衷於分佈式存儲和計算系統設計,樂於分享,有技術博客NosqlNotes。