幫助中心 | 我的帳號 | 關於我們

深入淺出存儲引擎/資料庫技術叢書

  • 作者:文小飛|責編:楊福川//侯穎
  • 出版社:機械工業
  • ISBN:9787111753001
  • 出版日期:2024/05/01
  • 裝幀:平裝
  • 頁數:364
人民幣:RMB 99 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書由某互聯網大廠資深工程師撰寫,帶你研讀存儲引擎的底層支撐技術、主流派系及其設計與實現精髓。作者特意採用經典電腦圖書的循序漸進方式講解,不斷拋出一個個引導你思考的問題,讓你漸入佳境,從紛繁複雜的產品和業務中抽取出本質,從容應對多種存儲與系統難題。
    全書共9章,分為三部分。第一部分(第1?3章)講解存儲引擎的全貌,涉及存儲引擎中高頻使用的數據結構、存儲介質等,為深入學習後面的內容做鋪墊。第二部分(第4?6章)介紹基於B+樹的存儲引擎,重點介紹為什麼選擇B+樹作為存儲引擎索引結構、B+樹存儲引擎解決哪些問題以及如何解決,並以BoltDB存儲引擎項目為例來講解核心原理與實現細節。第三部分(第7?9章)介紹基於LSM派系的存儲引擎,重點介紹LSM Tree中各組件的功能及作用,最後剖析了LevelDB項目的核心原理與實現細節。

作者介紹
文小飛|責編:楊福川//侯穎
    文小飛,大廠資深研發工程師、公司級講師。曾就職于騰訊等互聯網公司,從事基礎架構設計、推薦系統架構設計、後端開發等工作,具有豐富的基礎架構實踐經驗。對技術充滿熱情,尤其對存儲引擎、分散式共識演算法等技術有較為深入的理解,曾編寫「自底向上分析BoltDB源碼」系列文章,併發布「數據存儲與檢索」等網路課程。業餘時間喜歡閱讀開源項目源碼,學習新技術。

目錄
前言
第1章  存儲引擎概述
  1.1  數據存儲體系
    1.1.1  OLTP、OLAP與HTAP
    1.1.2  關係資料庫、NoSQL資料庫與NewSQL資料庫
    1.1.3  內存型存儲組件與磁碟型存儲組件
    1.1.4  讀多寫少組件、寫多讀少組件和讀多寫多組件
    1.1.5  數據存儲與檢索
  1.2  數據存儲的核心:存儲引擎
    1.2.1  存儲引擎整體架構
    1.2.2  存儲引擎的共性問題
  1.3  存儲引擎的分類
    1.3.1  讀多寫少:基於B+樹的存儲引擎
    1.3.2  寫多讀少:基於LSM派系的存儲引擎
  1.4  小結
第2章  索引數據結構
  2.1  基礎數據結構
    2.1.1  數組
    2.1.2  鏈表
  2.2  Hash類數據結構
    2.2.1  Hash表
    2.2.2  點陣圖
    2.2.3  布隆過濾器
  2.3  二叉樹類數據結構
    2.3.1  二叉搜索樹
    2.3.2  紅黑樹
    2.3.3  跳錶
  2.4  多叉樹類數據結構
    2.4.1  B樹
    2.4.2  B+樹
    2.4.3  其他多叉樹
  2.5  小結
第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  小結
第4章  從宏觀角度理解B+樹存儲引擎的原理
  4.1  B+樹存儲引擎產生的起點
    4.1.1  誕生的背景
    4.1.2  設計的目標
  4.2  B+樹存儲引擎方案選型
    4.2.1  數據結構方案對比
    4.2.2  目光轉向磁碟

    4.2.3  索引維護和存儲
    4.2.4  選擇B樹還是B+樹
  4.3  B+樹存儲引擎方案選型結果
    4.3.1  方案選型結果
    4.3.2  反向論證
  4.4  小結
第5章  從微觀角度理解B+樹存儲引擎的工程細節
  5.1  邊界條件處理
    5.1.1  B+樹在磁碟和內存中的映射
    5.1.2  讀操作的處理
    5.1.3  寫操作的處理
  5.2  異常情況處理
    5.2.1  異常情況總體分析
    5.2.2  數據部分寫入的異常處理
  5.3  事務
    5.3.1  事務的基本概念
    5.3.2  併發控制
  5.4  範圍查詢與全量遍歷
  5.5  小結
第6章  BoltDB核心源碼分析
  6.1  BoltDB整體結構
    6.1.1  BoltDB項目結構
    6.1.2  BoltDB整體實現架構
  6.2  page解析
    6.2.1  page基本結構
    6.2.2  元數據頁
    6.2.3  空閑列表頁
    6.2.4  分支節點頁
    6.2.5  葉子節點頁
  6.3  node解析
    6.3.1  B+樹結構概述
    6.3.2  node結構分析
    6.3.3  node的增刪改查
    6.3.4  node分裂
    6.3.5  node合併
  6.4  Bucket解析
    6.4.1  Bucket結構分析
    6.4.2  Bucket遍歷的Cursor核心結構分析
    6.4.3  Bucket的增刪改查
    6.4.4  KV數據的增刪改查
    6.4.5  Bucket的分裂和合併
  6.5  Tx解析
    6.5.1  Tx結構分析
    6.5.2  Commit()方法分析
    6.5.3  Rollback()方法分析
  6.6  DB解析
    6.6.1  DB結構分析
    6.6.2  Open()方法分析
    6.6.3  Begin()方法分析
    6.6.4  Update()和View()方法分析

    6.6.5  Batch()方法分析
  6.7  小結
第7章  深入理解LSM Tree原理
  7.1  LSM Tree的發展背景
  7.2  從零推導LSM Tree
    7.2.1  存儲介質的選擇
    7.2.2  寫請求的處理
    7.2.3  讀請求的處理
  7.3  LSM Tree的架構演進
    7.3.1  數據更新分類
    7.3.2  雙組件LSM Tree結構
    7.3.3  多組件LSM Tree結構
    7.3.4  實際的LSM Tree結構
  7.4  LSM Tree的核心問題
    7.4.1  數據壓縮/合併
    7.4.2  數據分區
    7.4.3  讀放大、寫放大和空間放大
    7.4.4  寫放大優化
  7.5  小結
第8章  LSM派系存儲引擎
  8.1  LSM Tree存儲引擎
    8.1.1  LSM Tree工程應用
    8.1.2  LSM Tree的KV分離存儲技術WiscKey
  8.2  LSM Hash存儲引擎
    8.2.1  LSM Hash的起源
    8.2.2  Bitcask的核心原理
  8.3  LSM Array存儲引擎
    8.3.1  LSM Array的設計思想
    8.3.2  Moss的核心原理
  8.4  其他LSM存儲引擎
    8.4.1  LSM存儲引擎擴展
    8.4.2  消息隊列Kafka存儲引擎
  8.5  小結
第9章  LevelDB核心源碼分析
  9.1  LevelDB概述
    9.1.1  LevelDB整體架構
    9.1.2  LevelDB項目結構
  9.2  DB核心介面分析
    9.2.1  DB結構
    9.2.2  Open(options,dbname,dbptr)的實現
    9.2.3  Put(k,v)和Delete(k)的實現
    9.2.4  Get(k)的實現
  9.3  MemTable的實現分析
    9.3.1  MemTable結構
    9.3.2  Add(k,v)和Get(k)的實現
    9.3.3  SkipList結構
  9.4  WAL日誌的實現分析
    9.4.1  WAL日誌的格式
    9.4.2  Writer的實現
    9.4.3  Reader的實現

  9.5  SSTable的實現分析
    9.5.1  SSTable的數據格式
    9.5.2  Block的寫入和讀取
    9.5.3  SSTable的寫入和讀取
    9.5.4  SSTable的讀取全過程
  9.6  Compact的實現分析
    9.6.1  Compact過程
    9.6.2  Minor Compact
    9.6.3  Major Compact
  9.7  多版本的實現分析
    9.7.1  Version和VersionEdit結構
    9.7.2  VersionSet結構
  9.8  小結
後記

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032