分散式儲存系統:核心技術、系統實作與Go專案實戰

李慶

  • 出版商: 機械工業
  • 出版日期: 2024-08-01
  • 售價: $714
  • 貴賓價: 9.5$678
  • 語言: 簡體中文
  • 頁數: 403
  • 裝訂: 平裝
  • ISBN: 7111758021
  • ISBN-13: 9787111758020
  • 立即出貨

相關主題

商品描述

全書分為3篇。第1篇儲存基本原理與分散式基本原理。
特別針對 Linux OS 的 IO 知識進行解說,也會結合 Go 的儲存程式實作。
第二篇剖析現有的儲存系統實現,對它們所使用的設計,概念,實現進行深入的剖析。
以此來借鏡。
第三篇進行程式設計實戰,將編寫數個極具實踐價值的應用程序,並且形成一個完整的分散式儲存系統。

作者簡介

李慶:資深存儲系統工程師,擁有近十年存儲研發與落地經驗。曾參與設計和運維多個EiB級別(百億兆字節規模)的存儲系統,這些系統應用於全球領先的科技企業,支撐著關鍵業務的數據處理和存儲需求。

目錄大綱

目 錄 Contents
前言
第一部分 Go語言基礎
第1章 存儲概述2
1.1 Go語言與儲存應用2
1.2 儲存:雲端變革的基​​石3
1.3 儲存技術的發展3
1.3.1 提升速度4
1.3.2 擴大容量4
1.4 本章小結4
第2章 Go語言的資料結構5
2.1 字節5
2.1.1 位元組的定義5
2.1.2 位元組的序列6
2.2 數組和切片10
2.2.1 數組10
2.2.2 切片11
2.3 字串13
2.3.1 變數的定義14
2.3.2 記憶體的分配15
2.3.3 字串的操作16
2.3.4 型轉換20
2.4 map類型21
2.4.1 創建與初始化21
2.4.2 讀取、寫入與刪除24
2.4.3 元素遍歷29
2.5 Channel類型32
2.5.1 創建與初始化32
2.5.2 入隊和出隊34
2.5.3 select和Channel結合41
2.5.4 for-range和Channel結合44
2.6 介面類型45
2.6.1 變數的定義45
2.6.2 實現原理47
2.6.3 介面nil賦值與判斷54
2.7 本章小結55
第3章 Go語言的I/O框架56
3.1 I/O的定義56
3.1.1 基礎型56
3.1.2 組合類型60
3.1.3 進階型63
3.2 通用I/O函數68
3.2.1 面向I/O介面的操作68
3.2.2 檔案I/O的操作函數70
3.3 檔案系統71
3.3.1 FS介面的定義72
3.3.2 FS介面的實作與擴充74
3.4 I/O標準庫拓樸78
3.4.1 位元組I/O78
3.4.2 字串I/O79
3.4.3 網路I/O80
3.4.4 文件I/O82
3.4.5 緩衝I/O83
3.5 檔案I/O和網路I/O85
3.5.1 文件I/O86
3.5.2 網路I/O89
3.6 本章小結98
第二部分 儲存基礎
第4章 Linux 儲存基礎102
4.1 儲存架構102
4.1.1 系統呼叫103
4.1.2 VFS層106
4.1.3 檔案系統層122
4.1.4 塊層123
4.1.5 設備驅動層123
4.2 文件的定義124
4.2.1 文件的類型124
4.2.2 一切皆文件127
4.2.3 文件句柄130
4.3 檔案系統131
4.3.1 檔案系統的掛載要素132
4.3.2 文件系統的開發要素132
4.4 文件I/O函數134
4.4.1 開啟文件135
4.4.2 寫文件137
4.4.3 讀文件138
4.4.4 文件偏移操作139
4.4.5 資料刷盤141
4.4.6 關閉文件141
4.5 本章小結142
第5章 儲存I/O實務143
5.1 文件的讀寫143
5.1.1 順序I/O143
5.1.2 隨機I/O146
5.2 資料安全落盤的方式148
5.2.1 Sync刷盤方式148
5.2.2 Direct I/O方式149
5.3 讀寫優化思路153
5.3.1 寫入操作的最佳化154
5.3.2 讀操作的最佳化 159
5.4 本章小結162
第6章 高級I/O模式163
6.1 阻塞和非阻塞I/O163
6.2 同步和非同步I/O164
6.3 I/O 介面的模式165
6.3.1 同步阻塞I/O165
6.3.2 同步非阻塞I/O166
6.3.3 異步阻塞I/O167
6.3.4 異步非阻塞I/O167
6.4 Linux的I/O模式實作168
6.4.1 訊號驅動I/O168
6.4.2 Linux的非同步I/O169
6.4.3 I/O多路復用171
6.5 本章小結172
第7章 並發I/O模型173
7.1 多進程模型173
7.2 多執行緒模型174
7.3 協程模型175
7.3.1 基本原理175
7.3.2 Go語言的Goroutine178
7.4 I/O多路復用179
7.4.1 select181
7.4.2 poll183
7.4.3 epoll184
7.5 本章小結200
第8章 快取模式201
8.1 旁路快取模式202
8.1.1 讀操作流程202
8.1.2 寫入操作流程203
8.2 讀寫穿透模式205
8.2.1 讀穿透模式205
8.2.2 寫入穿透模式206
8.3 異步回寫模式206
8.4 本章小結207
第9章 資料校驗技術208
9.1 資料校驗的概念與原理208
9.2 資料校驗的應用場景209
9.3 常見資料校驗技術210
9.3.1 奇偶校驗210
9.3.2 循環冗餘校驗211
9.3.3 摘要演算法212
9.4 本章小結215
第三部分 分散式系統基礎
第10章 分散式儲存理論218
10.1 分散式系統的特徵218
10.2 分散式系統的問題220
10.2.1 無全域時鐘220
10.2.2 網路異常220
10.2.3 結果的三態221
10.3 資料一致性222
10.3.1 狀態一致性222
10.3.2 操作一致性222
10.4 分散式理論225
10.4.1 CAP 理論225
10.4.2 BASE 理論226
10.5 分散式協定227
10.5.1 2PC協議227
10.5.2 3PC協議228
10.5.3 Paxos協定230
10.5.4 Raft協議233
10.6 本章小結236
第11章 高可用系統237
11.1 高可用的概念與原則237
11.2 高可用的關鍵技術238
11.3 高可用的架構模式240
11.3.1 雙機架構的模式240
11.3.2 集群模式242
11.4 本章小結245
第12章 資料策略246
12.1 資料分佈設計原則246<