注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)理論深入淺出存儲(chǔ)引擎

深入淺出存儲(chǔ)引擎

深入淺出存儲(chǔ)引擎

定 價(jià):¥99.00

作 者: 文小飛
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111753001 出版時(shí)間: 2024-05-01 包裝: 平裝-膠訂
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  全書(shū)分為3篇:1.第1篇首先會(huì)詳細(xì)講解存儲(chǔ)引擎的全貌,讓讀者能對(duì)存儲(chǔ)引擎有一個(gè)整體的思維框架,介紹存儲(chǔ)引擎的兩大分支:基于b+樹(shù)的存儲(chǔ)引擎、基于lsm派系的存儲(chǔ)引擎,其次對(duì)存儲(chǔ)引擎部分涉及的一些數(shù)據(jù)結(jié)構(gòu)、存儲(chǔ)介質(zhì)等概念做一個(gè)簡(jiǎn)要的介紹,為后面內(nèi)容的深入學(xué)習(xí)做鋪墊。2.第二篇主要介紹基于b+樹(shù)的存儲(chǔ)引擎,在理論部分重點(diǎn)回答為什么選擇b+樹(shù)做存儲(chǔ)引擎索引結(jié)構(gòu)、b+樹(shù)存儲(chǔ)引擎解決哪些問(wèn)題以及如何解決。在實(shí)踐部分選擇開(kāi)源社區(qū)中比較有名的boltdb存儲(chǔ)引擎項(xiàng)目來(lái)講解其內(nèi)部核心源碼的實(shí)現(xiàn)細(xì)節(jié)。3.第三篇主要介紹基于lsm派系的存儲(chǔ)引擎,理論部分重點(diǎn)介紹lsm tree中各組件的功能及作用,并在此基礎(chǔ)上擴(kuò)展介紹其他幾類(lèi)lsm派系存儲(chǔ)引擎的實(shí)現(xiàn)思路,幫助讀者開(kāi)闊視野,實(shí)踐部分分別以bitcask、moss、leveldb等開(kāi)源項(xiàng)目的核心源碼來(lái)展開(kāi),介紹其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。通過(guò)閱讀本書(shū),讀者不僅能對(duì)存儲(chǔ)引擎,尤其是單機(jī)的存儲(chǔ)引擎有一個(gè)整體的框架,而且能對(duì)兩類(lèi)存儲(chǔ)引擎的實(shí)現(xiàn)思路及背后原理有個(gè)深刻的掌握,只有深刻理解了存儲(chǔ)引擎的背后實(shí)現(xiàn)原理,讀者不僅可以自己動(dòng)手開(kāi)發(fā)自己的存儲(chǔ)引擎,更可以很快掌握關(guān)系型數(shù)據(jù)庫(kù)或者NoSql這類(lèi)組件的核心原理,對(duì)未來(lái)實(shí)際應(yīng)用與開(kāi)發(fā)提供參考。

作者簡(jiǎn)介

  文小飛,在騰訊負(fù)責(zé)推薦系統(tǒng)后臺(tái)核心模塊研發(fā)工作,擅長(zhǎng)go語(yǔ)言,熟悉推薦系統(tǒng)后臺(tái)工作;對(duì)網(wǎng)絡(luò)編程、微服務(wù)rpc框架、存儲(chǔ)、分布式共識(shí)算法(raft)等技術(shù)比較感興趣。

圖書(shū)目錄

Contents  目  錄
前言
第1章 存儲(chǔ)引擎概述1
1.1 數(shù)據(jù)存儲(chǔ)體系1
1.1.1 OLTP、OLAP與HTAP1
1.1.2 關(guān)系數(shù)據(jù)庫(kù)、NoSQL數(shù)據(jù)庫(kù)與
    NewSQL數(shù)據(jù)庫(kù)2
1.1.3 內(nèi)存型存儲(chǔ)組件與磁盤(pán)型存儲(chǔ)
    組件8
1.1.4 讀多寫(xiě)少組件、寫(xiě)多讀少組件
    和讀多寫(xiě)多組件9
1.1.5 數(shù)據(jù)存儲(chǔ)與檢索10
1.2 數(shù)據(jù)存儲(chǔ)的核心:存儲(chǔ)引擎10
1.2.1 存儲(chǔ)引擎整體架構(gòu)10
1.2.2 存儲(chǔ)引擎的共性問(wèn)題13
1.3 存儲(chǔ)引擎的分類(lèi)13
1.3.1 讀多寫(xiě)少:基于B+樹(shù)的存儲(chǔ)
    引擎14
1.3.2 寫(xiě)多讀少:基于LSM派系的
    存儲(chǔ)引擎15
1.4 小結(jié)17
第2章 索引數(shù)據(jù)結(jié)構(gòu)18
2.1 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)18
2.1.1 數(shù)組18
2.1.2 鏈表20
2.2 Hash類(lèi)數(shù)據(jù)結(jié)構(gòu)22
2.2.1 Hash表22
2.2.2 位圖27
2.2.3 布隆過(guò)濾器28
2.3 二叉樹(shù)類(lèi)數(shù)據(jù)結(jié)構(gòu)32
2.3.1 二叉搜索樹(shù)33
2.3.2 紅黑樹(shù)36
2.3.3 跳表45
2.4 多叉樹(shù)類(lèi)數(shù)據(jù)結(jié)構(gòu)48
2.4.1 B樹(shù)49
2.4.2 B+樹(shù)57
2.4.3 其他多叉樹(shù)61
2.5 小結(jié)61
第3章 數(shù)據(jù)存儲(chǔ)介質(zhì)64
3.1 內(nèi)存65
3.1.1 內(nèi)存的基本內(nèi)容65
3.1.2 內(nèi)存管理機(jī)制69
3.1.3 虛擬內(nèi)存管理機(jī)制80
3.2 持久化內(nèi)存92
3.3 磁盤(pán)96
3.3.1 磁盤(pán)的基本內(nèi)容97
3.3.2 磁盤(pán)管理機(jī)制102
3.3.3 加速磁盤(pán)訪問(wèn)的方案111
3.4 小結(jié)112
第4章 從宏觀角度理解B+樹(shù)存儲(chǔ)
 引擎的原理113
4.1 B+樹(shù)存儲(chǔ)引擎產(chǎn)生的起點(diǎn)114
4.1.1 誕生的背景114
4.1.2 設(shè)計(jì)的目標(biāo)116
4.2 B+樹(shù)存儲(chǔ)引擎方案選型117
4.2.1 數(shù)據(jù)結(jié)構(gòu)方案對(duì)比117
4.2.2 目光轉(zhuǎn)向磁盤(pán)118
4.2.3 索引維護(hù)和存儲(chǔ)121
4.2.4 選擇B樹(shù)還是B+樹(shù)125
4.3 B+樹(shù)存儲(chǔ)引擎方案選型結(jié)果128
4.3.1 方案選型結(jié)果128
4.3.2 反向論證130
4.4 小結(jié)130
第5章 從微觀角度理解B+樹(shù)存儲(chǔ)
 引擎的工程細(xì)節(jié)132
5.1 邊界條件處理132
5.1.1 B+樹(shù)在磁盤(pán)和內(nèi)存中的映射132
5.1.2 讀操作的處理133
5.1.3 寫(xiě)操作的處理137
5.2 異常情況處理154
5.2.1 異常情況總體分析154
5.2.2 數(shù)據(jù)部分寫(xiě)入的異常處理156
5.3 事務(wù)158
5.3.1 事務(wù)的基本概念158
5.3.2 并發(fā)控制160
5.4 范圍查詢(xún)與全量遍歷170
5.5 小結(jié)171
第6章 BoltDB核心源碼分析172
6.1 BoltDB整體結(jié)構(gòu)172
6.1.1 BoltDB項(xiàng)目結(jié)構(gòu)172
6.1.2 BoltDB整體實(shí)現(xiàn)架構(gòu)173
6.2 page解析175
6.2.1 page基本結(jié)構(gòu)176
6.2.2 元數(shù)據(jù)頁(yè)177
6.2.3 空閑列表頁(yè)179
6.2.4 分支節(jié)點(diǎn)頁(yè)183
6.2.5 葉子節(jié)點(diǎn)頁(yè)186
6.3 node解析187
6.3.1 B+樹(shù)結(jié)構(gòu)概述187
6.3.2 node結(jié)構(gòu)分析187
6.3.3 node的增刪改查189
6.3.4 node分裂190
6.3.5 node合并195
6.4 Bucket解析199
6.4.1 Bucket結(jié)構(gòu)分析199
6.4.2 Bucket遍歷的Cursor核心
 結(jié)構(gòu)分析201
6.4.3 Bucket的增刪改查206
6.4.4 KV數(shù)據(jù)的增刪改查210
6.4.5 Bucket的分裂和合并211
6.5 Tx解析213
6.5.1 Tx結(jié)構(gòu)分析213
6.5.2 Commit()方法分析214
6.5.3 Rollback()方法分析217
6.6 DB解析219
6.6.1 DB結(jié)構(gòu)分析219
6.6.2 Open()方法分析221
6.6.3 Begin()方法分析224
6.6.4 Update()和View()方法分析226
6.6.5 Batch()方法分析227
6.7 小結(jié)229
第7章 深入理解LSM Tree原理232
7.1 LSM Tree的發(fā)展背景232
7.2 從零推導(dǎo)LSM Tree234
7.2.1 存儲(chǔ)介質(zhì)的選擇234
7.2.2 寫(xiě)請(qǐng)求的處理234
7.2.3 讀請(qǐng)求的處理239
7.3 LSM Tree的架構(gòu)演進(jìn)240
7.3.1 數(shù)據(jù)更新分類(lèi)240
7.3.2 雙組件LSM Tree結(jié)構(gòu)241
7.3.3 多組件LSM Tree結(jié)構(gòu)242
7.3.4 實(shí)際的LSM Tree結(jié)構(gòu)243
7.4 LSM Tree的核心問(wèn)題245
7.4.1 數(shù)據(jù)壓縮/合并245
7.4.2 數(shù)據(jù)分區(qū)246
7.4.3 讀放大、寫(xiě)放大和空間放大249
7.4.4 寫(xiě)放大優(yōu)化251
7.5 小結(jié)252
第8章 LSM派系存儲(chǔ)引擎253
8.1 LSM Tree存儲(chǔ)引擎253
8.1.1 LSM Tree工程應(yīng)用253
8.1.2 LSM Tree的KV分離存儲(chǔ)
 技術(shù)WiscKey256
8.2 LSM Hash存儲(chǔ)引擎264
8.2.1 LSM Hash的起源264
8.2.2 Bitcask的核心原理265
8.3 LSM Array存儲(chǔ)引擎269
8.3.1 LSM Array的設(shè)計(jì)思想269
8.3.2 Moss的核心原理270
8.4 其他LSM存儲(chǔ)引擎274
8.4.1 LSM存儲(chǔ)引擎擴(kuò)展274
8.4.2 消息隊(duì)列Kafka存儲(chǔ)引擎275
8.5 小結(jié)277
第9章 LevelDB核心源碼分析278
9.1 LevelDB概述278
9.1.1 LevelDB整體架構(gòu)279
9.1.2 LevelDB項(xiàng)目結(jié)構(gòu)280

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)