作 者:廖環宇,張仕華 著
定 價:79
出 版 社:機械工業出版社
出版日期:2022年01月01日
頁 數:212
裝 幀:平裝
ISBN:9787111693260
1)阿裡、貝殼找房專家聯合撰寫,深入方法與關鍵代碼層面,多注釋與講解 2)本書繫統剖析LevelDB的數據結構、使用、架構、共用基礎類與主要模塊實現,是掌握Bigtable數據庫設計精髓的不二之選
●前言
第1章 初識LevelDB
1.1 鍵-值數據庫的提出與價值
1.2 LevelDB的誕生過程
1.3 LevelDB的特性
1.4 LevelDB的性能分析
1.5 LevelDB的衍生產品
1.5.1 RocksDB
1.5.2 SSDB
1.6 小結
第2章 基本數據結構
2.1 string與Slice
2.2 錯誤處理Status
2.3 key比較函數接口Comparator
2.4 迭代器接口
2.5 繫統參數
2.5.1 DB參數Options
2.5.2 讀操作參數ReadOptions
2.5.3 寫操作參數WriteOptions
2.6 小結
第3章 LevelDB使用入門
3.1 源碼簡介
3.1.1 目錄結構
3.1.2 安裝與編譯
3.1.3 引用頭文件
3.2 創建(打開)與關閉數據庫
3.3 數據的讀、寫與刪除
3.4 數據批量操作
3.5 迭代器與key的查詢操作
3.5.1 前向與反向迭代循環遍歷
3.5.2 按key的範圍進行查詢
3.6 性能優化方案
3.6.1 啟用壓縮
3.6.2 啟用Cache
3.6.3 啟用FilterPolicy
3.6.4 key的命名設計
3.7 小結
第4章 總體架構與設計思想
4.1 鍵-值存儲繫統的基本要求
4.2 Bigtable與LevelDB
4.3 主要模塊功能介紹
4.4 主要操作流程分析
4.4.1 數據庫Open流程分析
4.4.2 數據Get流程分析
4.4.3 數據Put與Write流程分析
4.4.4 快照生成與讀取分析
4.5 小結
第5章 公用基礎類
5.1 LevelDB跨平臺編程
5.1.1 LevelDB操作繫統可移植方案
5.1.2 LevelDB移植到操作繫統接口規範
5.1.3 IX可移植操作繫統接口
5.1.4 原子指針與內存屏障
5.2 文件操作
5.2.1 順序文件操作
5.2.2 隨機文件操作
5.2.3 Log文件操作
5.3 Env操作環境抽像接口
5.3.1 ixEnv對像
5.3.2 EnvWrapper與InMemoryEnv
5.4 int數值編碼
5.4.1 什麼是編碼
5.4.2 int定長數值編碼
5.4.3 int變長數值編碼
5.5 內存管理
5.5.1 Arena內存池的基本思想
5.5.2 Arena內存池的定義與原理
5.5.3 Arena內存的分配
5.5.4 內存使用率統計
5.5.5 非內存池的內存分配優化
5.6 小結
第6章 Log模塊
6.1 Log文件格式定義
6.2 Log文件讀寫操作
6.2.1 Log文件寫入
6.2.2 Log文件讀取
6.3 記錄Log文件
6.4 從Log文件恢復MemTable
6.5 小結
第7章 MemTable模塊
7.1 MemTable插入與查找
7.1.1 MemTable插入
7.1.2 MemTable查找
7.2 SkipList插入與查找
7.2.1 SkipList插入
7.2.2 SkipList查找
7.3 MemTable生成SSTable
7.4 小結
第8章 SSTable模塊
8.1 SSTable文件格式
8.1.1 SSTable的組成
8.1.2 塊格式
8.1.3 數據索引區域
8.1.4 數據區域
8.1數據索引區域
8.1數據區域
8.2 SSTable的讀寫流程
8.2.1 生成塊
8.2.2 讀取塊
8.2.3 生成SSTable
8.2.4 讀取SSTable
8.3 布隆過濾器的實現
8.3.1 布隆過濾器的設計
8.3.2 布隆過濾器的使用
8.4 LRU Cache的實現
8.4.1 LRU Cache的設計
8.4.2 LRU Cache的使用
8.5 小結
第9章 多版本管理與Compaction原理
9.1 多版本管理機制
9.1.1 VersionEdit機制
9.1.2 Version機制
9.1.3 VersionSet機制
9.1.4 Manifest機制
9.2 Compaction原理
9.2.1 觸發時機
9.2.2 文件選取
9.2.3 執行流程
9.2.4 文件清理
9.3 小結
附錄 LevelDB的演進
本書詳細剖析LevelDB從使用到設計實現的方方面面,讀後可了解谷歌Bigtable數據庫的設計精髓,邏輯上可分為兩部分。
第一部分著重講解LevelDB的基礎知識,主要內容如下。
1)基本數據結構,這是理解後續內容的基礎,也可以加深對比較器、迭代器等常見數據結構的理解。
2)基本使用,如數據庫打開、關閉以及基本的讀寫操作。
3)總體架構與設計思想,讀後可掌握LevelDB的整體情況與設計思路。
4)公用基礎類,讀後可了解LevelDB中如何實現數值編碼、內存管理以及文件讀取等。
第二部分著重講解LevelDB各模塊的實現細節,主要內容如下。
1)Log模塊的實現細節,以及如何通過Log進行崩潰恢復,並生成一個MemTable文件。
2)MemTable模塊的實現細節,以及MemTable超過內等