发表于2024-11-24
大規模分布式存儲係統:原理解析與架構實戰 pdf epub mobi txt 電子書 下載 2024
阿裏巴巴高級技術專傢(OceanBase核心開發人員)撰寫,陽振坤、章文嵩、楊衛華、汪源、餘鋒(褚霸)、賴春波等來自阿裏、新浪、網易和百度的資深技術專傢聯袂推薦。
係統講解構建大規模存儲係統的核心技術和原理,詳細分析Google、Microsoft和阿裏巴巴的大規模分布式存儲係統的原理。
實戰性強,通過對阿裏巴巴的分布式數據庫OceanBase的實現細節進行深入分析,完整講解瞭大規模分布式存儲係統的架構方法與應用實踐。
《大規模分布式存儲係統:原理解析與架構實戰》是分布式係統領域的經典著作,由阿裏巴巴高級技術專傢“阿裏日照”(OceanBase核心開發人員)撰寫,陽振坤、章文嵩、楊衛華、汪源、餘鋒(褚霸)、賴春波等來自阿裏、新浪、網易和百度的專業技術專傢聯袂推薦。理論方麵,不僅講解瞭大規模分布式存儲係統的核心技術和基本原理,而且對榖歌、微軟和阿裏巴巴等國際型大互聯網公司的大規模分布式存儲係統進行瞭分析;實戰方麵,首先通過對阿裏巴巴的分布式數據庫OceanBase的實現細節的深入剖析完整地展示瞭大規模分布式存儲係統的架構與設計過程,然後講解瞭大規模分布式存儲技術在雲計算和大數據領域的實踐與應用。
《大規模分布式存儲係統:原理解析與架構實戰》內容分為四個部分:基礎篇--分布式存儲係統的基礎知識,包含單機存儲係統的知識,如數據模型、事務與並發控製、故障恢復、存儲引擎、壓縮/解壓縮等;分布式係統的數據分布、復製、一緻性、容錯、可擴展性等。範型篇--介紹榖歌、微軟、阿裏巴巴等知名互聯網公司的大規模分布式存儲係統架構,涉及分布式文件係統、分布式鍵值係統、分布式錶格係統以及分布式數據庫技術等。實踐篇--以阿裏巴巴的分布式數據庫OceanBase為例,詳細介紹分布式數據庫內部實現,以及實踐過程中的經驗。專題篇--介紹分布式係統的主要應用:雲存儲和大數據,這些是近年來的熱門領域,本書介紹瞭雲存儲平颱、技術與安全,以及大數據的概念、流式計算、實時分析等。
楊傳輝,阿裏巴巴高級技術專傢,花名日照,OceanBase核心開發人員,對分布式係統的理論和工程實踐有深刻理解。曾在百度作為核心成員參與類MapReduce係統、類Bigtable係統和百度分布式消息隊列等底層基礎設施架構工作。熱衷於分布式存儲和計算係統設計,樂於分享,有技術博客NosqlNotes。
★本書覆蓋的信息量及知識點非常全麵,是瞭解分布式存儲不可多得的書籍,對指導分布式領域開發也具有重要參考價值。
—— 楊衛華,新浪微博首席架構師
★分布式存儲這個領域麵寬水深,無論是分布式理論、存儲還是案例,鋪開寫都是捲帙浩繁。本書一是勝在圍繞頗具廣泛實用價值的基於通用硬件構建大規模分布式存儲係統這一核心進行瞭很好的材料組織選取;二是勝在對OceanBase實現機製的深度剖析。本書作者是OceanBase的核心開發人員,對分布式存儲係統身體力行,自然有很多獨特的洞見。因此,本書實用性和獨特性俱佳,必須入手一讀。
—— 汪源,網易杭州研究院副院長
★分布式係統固有的復雜性加上大規模存儲係統的工程挑戰,讓真正理解這個體係變得非常睏難。作者在相關領域擁有多年一綫開發經驗,從實踐工作中將相關知識萃取齣來,清晰地呈現給讀者。因此,我願意將此書推薦給真正想瞭解分布式存儲係統原理並勇於實踐的讀者。
—— 餘鋒,阿裏巴巴專業技術專傢,花名褚霸
★作者先後在百度、阿裏巴巴等公司長期緻力於大規模存儲和分布式等技術的研究,對BigTable、Dynamo等業界知名存儲係統也有深入的瞭解,同時在Pyramid、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章 概 述
Google、Amazon、Alibaba等互聯網公司的成功催生瞭雲計算和大數據兩大熱門領域。無論是雲計算、大數據還是互聯網公司的各種應用,其後颱基礎設施的主要目標都是構建低成本、高性能、可擴展、易用的分布式存儲係統。
雖然分布式係統研究瞭很多年,但是,直到近年來,互聯網大數據應用的興起纔使得它大規模地應用到工程實踐中。相比傳統的分布式係統,互聯網公司的分布式係統具有兩個特點:一個特點是規模大,另一個特點是成本低。不同的需求造就瞭不同的設計方案,可以這麼說,Google等互聯網公司重新定義瞭大規模分布式係統。本章介紹大規模分布式係統的定義與分類。
1.1 分布式存儲概念
大規模分布式存儲係統的定義如下:
“分布式存儲係統是大量普通PC服務器通過Internet互聯,對外作為一個整體提供存儲服務。”
分布式存儲係統具有如下幾個特性:
可擴展。分布式存儲係統可以擴展到幾百颱甚至幾韆颱的集群規模,而且,隨著集群規模的增長,係統整體性能錶現為綫性增長。
低成本。分布式存儲係統的自動容錯、自動負載均衡機製使其可以構建在普通PC機之上。另外,綫性擴展能力也使得增加、減少機器非常方便,可以實現自動運維。
高性能。無論是針對整個集群還是單颱服務器,都要求分布式存儲係統具備高性能。
易用。分布式存儲係統需要能夠提供易用的對外接口,另外,也要求具備完善的監控、運維工具,並能夠方便地與其他係統集成,例如,從Hadoop雲計算係統導入數據。
分布式存儲係統的挑戰主要在於數據、狀態信息的持久化,要求在自動遷移、自動容錯、並發讀寫的過程中保證數據的一緻性。分布式存儲涉及的技術主要來自兩個領域:分布式係統以及數據庫,如下所示:
數據分布:如何將數據分布到多颱服務器纔能夠保證數據分布均勻?數據分布到多颱服務器後如何實現跨服務器讀寫操作?
一緻性:如何將數據的多個副本復製到多颱服務器,即使在異常情況下,也能夠保證不同副本之間的數據一緻性?
容錯:如何檢測到服務器故障?如何自動將齣現故障的服務器上的數據和服務遷移到集群中其他服務器?
負載均衡:新增服務器和集群正常運行過程中如何實現自動負載均衡?數據遷移的過程中如何保證不影響已有服務?
事務與並發控製:如何實現分布式事務?如何實現多版本並發控製?
易用性:如何設計對外接口使得係統容易使用?如何設計監控係統並將係統的內部狀態以方便的形式暴露給運維人員?
壓縮/解壓縮:如何根據數據的特點設計閤理的壓縮/解壓縮算法?如何平衡壓縮算法節省的存儲空間和消耗的CPU計算資源?
分布式存儲係統挑戰大,研發周期長,涉及的知識麵廣。一般來講,工程師如果能夠深入理解分布式存儲係統,理解其他互聯網後颱架構不會再有任何睏難。
1.2 分布式存儲分類
分布式存儲麵臨的數據需求比較復雜,大緻可以分為三類:
非結構化數據:包括所有格式的辦公文檔、文本、圖片、圖像、音頻和視頻信息等。
結構化數據:一般存儲在關係數據庫中,可以用二維關係錶結構來錶示。結構化數據的模式(Schema,包括屬性、數據類型以及數據之間的聯係)和內容是分開的,數據的模式需要預先定義。
半結構化數據:介於非結構化數據和結構化數據之間,HTML文檔就屬於半結構化數據。它一般是自描述的,與結構化數據最大的區彆在於,半結構化數據的模式結構和內容混在一起,沒有明顯的區分,也不需要預先定義數據的模式結構。
不同的分布式存儲係統適閤處理不同類型的數據,本書將分布式存儲係統分為四類:分布式文件係統、分布式鍵值(Key-Value)係統、分布式錶格係統和分布式數據庫。
1.分布式文件係統
互聯網應用需要存儲大量的圖片、照片、視頻等非結構化數據對象,這類數據以對象的形式組織,對象之間沒有關聯,這樣的數據一般稱為Blob(Binary Large Object,二進製大對象)數據。
分布式文件係統用於存儲Blob對象,典型的係統有Facebook Haystack以及Taobao File System(TFS)。另外,分布式文件係統也常作為分布式錶格係統以及分布式數據庫的底層存儲,如榖歌的GFS (Google File System,存儲大文件)可以作為分布式錶格係統Google Bigtable的底層存儲,Amazon的EBS(Elastic Block Store,彈性塊存儲)係統可以作為分布式數據庫(Amazon RDS)的底層存儲。
總體上看,分布式文件係統存儲三種類型的數據:Blob對象、定長塊以及大文件。在係統實現層麵,分布式文件係統內部按照數據塊(chunk)來組織數據,每個數據塊的大小大緻相同,每個數據塊可以包含多個Blob對象或者定長塊,一個大文件也可以拆分為多個數據塊,如圖1-1所示。分布式文件係統將這些數據塊分散到存儲集群,處理數據復製、一緻性、負載均衡、容錯等分布式係統難題,並將用戶對Blob對象、定長塊以及大文件的操作映射為對底層數據塊的操作。
圖1-1 數據塊與Blob對象、定長塊、大文件之間的關係
2.分布式鍵值係統
分布式鍵值係統用於存儲關係簡單的半結構化數據,它隻提供基於主鍵的CRUD(Create/Read/Update/Delete)功能,即根據主鍵創建、讀取、更新或者刪除一條鍵值記錄。
典型的係統有Amazon Dynamo以及Taobao Tair。從數據結構的角度看,分布式鍵值係統與傳統的哈希錶比較類似,不同的是,分布式鍵值係統支持將數據分布到集群中的多個存儲節點。分布式鍵值係統是分布式錶格係統的一種簡化實現,一般用作緩存,比如淘寶 Tair以及Memcache。一緻性哈希是分布式鍵值係統中常用的數據分布技術,因其被Amazon DynamoDB係統使用而變
大規模分布式存儲係統:原理解析與架構實戰 下載 mobi epub pdf txt 電子書
講的內容不深入,就那麼大緻講下,然後就一筆帶過瞭,有點失望,範例是java
評分書還不錯,迴頭再自習看看,618買的挺值得。
評分哥哥迴傢傢斤斤計較吧fxcvbhhhhj方法更好斤斤計較開幕個程序開幕你先休息
評分111111111111111111
評分評價得京豆 評價得京豆 評價得京豆
評分很實用的內容為多傢人的幫助很大
評分特價屯書。。。。。。
評分經典經典經典經典
評分輪廓講的比較清晰瞭
大規模分布式存儲係統:原理解析與架構實戰 pdf epub mobi txt 電子書 下載