相關主題
商品描述
本書以工業級數據庫引擎InnoDB為核心,圍繞並發控制與崩潰恢覆兩大主題進行深度闡述,通過理論和源碼相結合的方式,為讀者提供穿透式學習體驗。 全書共10章,第1章對InnoDB存儲引擎的基本概念進行介紹。第2章 ~第7章的主題是並發控制,從基礎理論到兩階段鎖協議,再到多版本並發控制技術以及多層事務模型, 是InnoDB的具體實現。第8章和第9章的主題是崩潰恢覆,首先介紹基於日誌的崩潰恢覆理論,然後通過實踐分析InnoDB的具體實現。第10章補充介紹了InnoDB的其他重要組件。隨書附贈源碼等學習資料,獲取方式見封底。 本書面向數據庫內核開發者、 DBA (數據庫管理員 )及存儲系統研究者,幫助讀者真正掌握InnoDB的設計哲學與工程智慧,獲得源碼級理解的核心能力。
作者簡介
吳昊,浙江大學計算機碩士,就職於互聯網一線大廠,專註於數據庫內核技術近十年,一直致力於MySQL數據庫底層實現原理的研究和探索。
目錄大綱
序
前言
第1章 InnoDB 存儲引擎概述
1.1 什麼是事務?
1.2 MySQL/InnoDB 概述
第2章 並發控制基礎理論
2.1 調度
2.2 單層事務模型和多層事務模型
2.3 可串行化理論
2.3.1 終態可串行化
2.3.2 視圖可串行化
2.3.3 沖突可串行化
第3章 並發控制協議
3.1 兩階段鎖協議的定義及證明
3.2 兩階段鎖協議的若幹變種
3.3 TO、SGT 並發控制協議
3.3.1 TO 協議
3.3.2 SGT 協議
3.4 樂觀並發控制協議
第4章 多版本並發控制
4.1 多版本並發控制理論
4.1.1 多版本可串行化
4.1.2 多版本調度的優先圖
4.1.3 各種異像詳解
4.2 細說隔離級別
4.2.1 基於鎖的定義
4.2.2 基於異像的定義
4.2.3 基於 MVSG 的定義
4.3 多版本並發控制協議
4.3.1 MV2PL 協議
4.3.2 MVTO 協議
4.3.3 ROMV 協議
4.3.4 ROMV 和可重覆讀的異同
第5章 多層事務模型的並發控制
5.1 多層事務模型的定義
5.2 多層事務模型的並發控制算法
5.3 多層事務模型的並發控制協議
5.4 索引結構的並發控制
5.4.1 再談寫偏斜異常
5.4.2 NextKey Locking
5.4.3 耦合鎖協議
第6章 InnoDB 並發控制實踐
6.1 空間管理
6.1.1 數據段
6.1.2 數據區
6.1.3 空間分配和回收策略
6.2 基於 BTree 的索引
6.2.1 物理記錄和邏輯記錄
6.2.2 基於 BTree 的索引
6.2.3 基於鎖的並發控制
6.2.4 BTree 的分裂和合並
6.2.5 持久化遊標
6.2.6 主鍵索引與二級索引
6.3 Undo Log的實踐
6.3.1 Undo Log 的組織形式
6.3.2 Undo Log的分配
6.3.3 Undo Log的記錄
6.3.4 Undo Log的使用
6.4 多版本並發控制的實踐
6.4.1 多版本並發控制的設計
6.4.2 多版本記錄的回收
6.5 鎖系統的實踐
6.5.1 記錄鎖的獲取
6.5.2 NextKey Lock
6.5.3 正確性論證
6.5.4 不同場景的加鎖方式
第7章 各組件並發控制展望
7.1 從 BTree 說起
7.2 Redo Log 的可擴展性
7.3 多版本並發控制再設計
7.4 Buffer Pool 可擴展性討論
第8章 崩潰恢覆技術
8.1 可恢覆性
8.2 對經典調度的擴展
8.3 基於日誌的崩潰恢覆理論
8.3.1 Undo/Redo Log
8.3.2 RedoWinner 算法
8.3.3 物理/邏輯日誌
8.3.4 初識Checkpoint
8.3.5 事務中止的影響
8.3.6 RedoHistory 算法
8.3.7 多層事務模型的崩潰恢覆
第9章 InnoDB 崩潰恢覆實踐
9.1 Buffer Pool
9.1.1 Buffer數據頁
9.1.2 兩個鏈表:LRU List 和Flush List
9.1.3 Buffer Pool 的基本操作
9.1.4 Buffer Pool 的並發控制
9.2 Redo Log
9.2.1 Redo Log的組織結構
9.2.2 Redo Log緩沖區
9.2.3 log writer 線程
9.2.4 無鎖化改造
9.3 崩潰恢覆
9.3.1 LSN
9.3.2 Checkpoint的實現
9.3.3 兩階段提交
9.3.4 InnoDB 的實現
第10章 InnoDB 其他模塊選講
10.1 變更緩沖區
10.1.1 變更緩沖區的組織形式
10.1.2 正確性保證
10.1.3 purge 操作的特殊性
10.2 數據描述語言(DDL)
10.2.1 什麼是元數據
10.2.2 DDL 的分類
10.2.3 DDL 的執行過程
10.2.4 數據字典的實現
10.2.5 DDL 的原子性
10.3 BLOB
10.3.1 BLOB 簡介
10.3.2 BLOB 的組織形式
10.3.3 BLOB MVCC 的實現
參考文獻
