深入浅出存储引擎 文小飞

深入浅出存储引擎   文小飞
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2024-05
版次: 1
ISBN: 9787111753001
定价: 99.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 376页
字数: 506千字
1人买过
  • 全书分为3篇:1.第1篇首先会详细讲解存储引擎的全貌,让读者能对存储引擎有一个整体的思维框架,介绍存储引擎的两大分支:基于b+树的存储引擎、基于lsm派系的存储引擎,其次对存储引擎部分涉及的一些数据结构、存储介质等概念做一个简要的介绍,为后面内容的深入学习做铺垫。2.第二篇主要介绍基于b+树的存储引擎,在理论部分重点回答为什么选择b+树做存储引擎索引结构、b+树存储引擎解决哪些问题以及如何解决。在实践部分选择开源社区中比较有名的boltdb存储引擎项目来讲解其内部核心源码的实现细节。3.第三篇主要介绍基于lsm派系的存储引擎,理论部分重点介绍lsm tree中各组件的功能及作用,并在此基础上扩展介绍其他几类lsm派系存储引擎的实现思路,帮助读者开阔视野,实践部分分别以bitcask、moss、leveldb等开源项目的核心源码来展开,介绍其内部实现细节。通过阅读本书,读者不仅能对存储引擎,尤其是单机的存储引擎有一个整体的框架,而且能对两类存储引擎的实现思路及背后原理有个深刻的掌握,只有深刻理解了存储引擎的背后实现原理,读者不仅可以自己动手开发自己的存储引擎,更可以很快掌握关系型数据库或者NoSql这类组件的核心原理,对未来实际应用与开发提供参考。 文小飞,在腾讯负责推荐系统后台核心模块研发工作,擅长go语言,熟悉推荐系统后台工作;对网络编程、微服务rpc框架、存储、分布式共识算法(raft)等技术比较感兴趣。 Contents  目  录

    前言

    第1章 存储引擎概述1

    1.1 数据存储体系1

    1.1.1 OLTP、OLAP与HTAP1

    1.1.2 关系数据库、NoSQL数据库与

        NewSQL数据库2

    1.1.3 内存型存储组件与磁盘型存储

        组件8

    1.1.4 读多写少组件、写多读少组件

        和读多写多组件9

    1.1.5 数据存储与检索10

    1.2 数据存储的核心:存储引擎10

    1.2.1 存储引擎整体架构10

    1.2.2 存储引擎的共性问题13

    1.3 存储引擎的分类13

    1.3.1 读多写少:基于B+树的存储

        引擎14

    1.3.2 写多读少:基于LSM派系的

        存储引擎15

    1.4 小结17

    第2章 索引数据结构18

    2.1 基础数据结构18

    2.1.1 数组18

    2.1.2 链表20

    2.2 Hash类数据结构22

    2.2.1 Hash表22

    2.2.2 位图27

    2.2.3 布隆过滤器28

    2.3 二叉树类数据结构32

    2.3.1 二叉搜索树33

    2.3.2 红黑树36

    2.3.3 跳表45

    2.4 多叉树类数据结构48

    2.4.1 B树49

    2.4.2 B+树57

    2.4.3 其他多叉树61

    2.5 小结61

    第3章 数据存储介质64

    3.1 内存65

    3.1.1 内存的基本内容65

    3.1.2 内存管理机制69

    3.1.3 虚拟内存管理机制80

    3.2 持久化内存92

    3.3 磁盘96

    3.3.1 磁盘的基本内容97

    3.3.2 磁盘管理机制102

    3.3.3 加速磁盘访问的方案111

    3.4 小结112

    第4章 从宏观角度理解B+树存储

     引擎的原理113

    4.1 B+树存储引擎产生的起点114

    4.1.1 诞生的背景114

    4.1.2 设计的目标116

    4.2 B+树存储引擎方案选型117

    4.2.1 数据结构方案对比117

    4.2.2 目光转向磁盘118

    4.2.3 索引维护和存储121

    4.2.4 选择B树还是B+树125

    4.3 B+树存储引擎方案选型结果128

    4.3.1 方案选型结果128

    4.3.2 反向论证130

    4.4 小结130

    第5章 从微观角度理解B+树存储

     引擎的工程细节132

    5.1 边界条件处理132

    5.1.1 B+树在磁盘和内存中的映射132

    5.1.2 读操作的处理133

    5.1.3 写操作的处理137

    5.2 异常情况处理154

    5.2.1 异常情况总体分析154

    5.2.2 数据部分写入的异常处理156

    5.3 事务158

    5.3.1 事务的基本概念158

    5.3.2 并发控制160

    5.4 范围查询与全量遍历170

    5.5 小结171

    第6章 BoltDB核心源码分析172

    6.1 BoltDB整体结构172

    6.1.1 BoltDB项目结构172

    6.1.2 BoltDB整体实现架构173

    6.2 page解析175

    6.2.1 page基本结构176

    6.2.2 元数据页177

    6.2.3 空闲列表页179

    6.2.4 分支节点页183

    6.2.5 叶子节点页186

    6.3 node解析187

    6.3.1 B+树结构概述187

    6.3.2 node结构分析187

    6.3.3 node的增删改查189

    6.3.4 node分裂190

    6.3.5 node合并195

    6.4 Bucket解析199

    6.4.1 Bucket结构分析199

    6.4.2 Bucket遍历的Cursor核心

     结构分析201

    6.4.3 Bucket的增删改查206

    6.4.4 KV数据的增删改查210

    6.4.5 Bucket的分裂和合并211

    6.5 Tx解析213

    6.5.1 Tx结构分析213

    6.5.2 Commit()方法分析214

    6.5.3 Rollback()方法分析217

    6.6 DB解析219

    6.6.1 DB结构分析219

    6.6.2 Open()方法分析221

    6.6.3 Begin()方法分析224

    6.6.4 Update()和View()方法分析226

    6.6.5 Batch()方法分析227

    6.7 小结229

    第7章 深入理解LSM Tree原理232

    7.1 LSM Tree的发展背景232

    7.2 从零推导LSM Tree234

    7.2.1 存储介质的选择234

    7.2.2 写请求的处理234

    7.2.3 读请求的处理239

    7.3 LSM Tree的架构演进240

    7.3.1 数据更新分类240

    7.3.2 双组件LSM Tree结构241

    7.3.3 多组件LSM Tree结构242

    7.3.4 实际的LSM Tree结构243

    7.4 LSM Tree的核心问题245

    7.4.1 数据压缩/合并245

    7.4.2 数据分区246

    7.4.3 读放大、写放大和空间放大249

    7.4.4 写放大优化251

    7.5 小结252

    第8章 LSM派系存储引擎253

    8.1 LSM Tree存储引擎253

    8.1.1 LSM Tree工程应用253

    8.1.2 LSM Tree的KV分离存储

     技术WiscKey256

    8.2 LSM Hash存储引擎264

    8.2.1 LSM Hash的起源264

    8.2.2 Bitcask的核心原理265

    8.3 LSM Array存储引擎269

    8.3.1 LSM Array的设计思想269

    8.3.2 Moss的核心原理270

    8.4 其他LSM存储引擎274

    8.4.1 LSM存储引擎扩展274

    8.4.2 消息队列Kafka存储引擎275

    8.5 小结277

    第9章 LevelDB核心源码分析278

    9.1 LevelDB概述278

    9.1.1 LevelDB整体架构279

    9.1.2 LevelDB项目结构280
  • 内容简介:
    全书分为3篇:1.第1篇首先会详细讲解存储引擎的全貌,让读者能对存储引擎有一个整体的思维框架,介绍存储引擎的两大分支:基于b+树的存储引擎、基于lsm派系的存储引擎,其次对存储引擎部分涉及的一些数据结构、存储介质等概念做一个简要的介绍,为后面内容的深入学习做铺垫。2.第二篇主要介绍基于b+树的存储引擎,在理论部分重点回答为什么选择b+树做存储引擎索引结构、b+树存储引擎解决哪些问题以及如何解决。在实践部分选择开源社区中比较有名的boltdb存储引擎项目来讲解其内部核心源码的实现细节。3.第三篇主要介绍基于lsm派系的存储引擎,理论部分重点介绍lsm tree中各组件的功能及作用,并在此基础上扩展介绍其他几类lsm派系存储引擎的实现思路,帮助读者开阔视野,实践部分分别以bitcask、moss、leveldb等开源项目的核心源码来展开,介绍其内部实现细节。通过阅读本书,读者不仅能对存储引擎,尤其是单机的存储引擎有一个整体的框架,而且能对两类存储引擎的实现思路及背后原理有个深刻的掌握,只有深刻理解了存储引擎的背后实现原理,读者不仅可以自己动手开发自己的存储引擎,更可以很快掌握关系型数据库或者NoSql这类组件的核心原理,对未来实际应用与开发提供参考。
  • 作者简介:
    文小飞,在腾讯负责推荐系统后台核心模块研发工作,擅长go语言,熟悉推荐系统后台工作;对网络编程、微服务rpc框架、存储、分布式共识算法(raft)等技术比较感兴趣。
  • 目录:
    Contents  目  录

    前言

    第1章 存储引擎概述1

    1.1 数据存储体系1

    1.1.1 OLTP、OLAP与HTAP1

    1.1.2 关系数据库、NoSQL数据库与

        NewSQL数据库2

    1.1.3 内存型存储组件与磁盘型存储

        组件8

    1.1.4 读多写少组件、写多读少组件

        和读多写多组件9

    1.1.5 数据存储与检索10

    1.2 数据存储的核心:存储引擎10

    1.2.1 存储引擎整体架构10

    1.2.2 存储引擎的共性问题13

    1.3 存储引擎的分类13

    1.3.1 读多写少:基于B+树的存储

        引擎14

    1.3.2 写多读少:基于LSM派系的

        存储引擎15

    1.4 小结17

    第2章 索引数据结构18

    2.1 基础数据结构18

    2.1.1 数组18

    2.1.2 链表20

    2.2 Hash类数据结构22

    2.2.1 Hash表22

    2.2.2 位图27

    2.2.3 布隆过滤器28

    2.3 二叉树类数据结构32

    2.3.1 二叉搜索树33

    2.3.2 红黑树36

    2.3.3 跳表45

    2.4 多叉树类数据结构48

    2.4.1 B树49

    2.4.2 B+树57

    2.4.3 其他多叉树61

    2.5 小结61

    第3章 数据存储介质64

    3.1 内存65

    3.1.1 内存的基本内容65

    3.1.2 内存管理机制69

    3.1.3 虚拟内存管理机制80

    3.2 持久化内存92

    3.3 磁盘96

    3.3.1 磁盘的基本内容97

    3.3.2 磁盘管理机制102

    3.3.3 加速磁盘访问的方案111

    3.4 小结112

    第4章 从宏观角度理解B+树存储

     引擎的原理113

    4.1 B+树存储引擎产生的起点114

    4.1.1 诞生的背景114

    4.1.2 设计的目标116

    4.2 B+树存储引擎方案选型117

    4.2.1 数据结构方案对比117

    4.2.2 目光转向磁盘118

    4.2.3 索引维护和存储121

    4.2.4 选择B树还是B+树125

    4.3 B+树存储引擎方案选型结果128

    4.3.1 方案选型结果128

    4.3.2 反向论证130

    4.4 小结130

    第5章 从微观角度理解B+树存储

     引擎的工程细节132

    5.1 边界条件处理132

    5.1.1 B+树在磁盘和内存中的映射132

    5.1.2 读操作的处理133

    5.1.3 写操作的处理137

    5.2 异常情况处理154

    5.2.1 异常情况总体分析154

    5.2.2 数据部分写入的异常处理156

    5.3 事务158

    5.3.1 事务的基本概念158

    5.3.2 并发控制160

    5.4 范围查询与全量遍历170

    5.5 小结171

    第6章 BoltDB核心源码分析172

    6.1 BoltDB整体结构172

    6.1.1 BoltDB项目结构172

    6.1.2 BoltDB整体实现架构173

    6.2 page解析175

    6.2.1 page基本结构176

    6.2.2 元数据页177

    6.2.3 空闲列表页179

    6.2.4 分支节点页183

    6.2.5 叶子节点页186

    6.3 node解析187

    6.3.1 B+树结构概述187

    6.3.2 node结构分析187

    6.3.3 node的增删改查189

    6.3.4 node分裂190

    6.3.5 node合并195

    6.4 Bucket解析199

    6.4.1 Bucket结构分析199

    6.4.2 Bucket遍历的Cursor核心

     结构分析201

    6.4.3 Bucket的增删改查206

    6.4.4 KV数据的增删改查210

    6.4.5 Bucket的分裂和合并211

    6.5 Tx解析213

    6.5.1 Tx结构分析213

    6.5.2 Commit()方法分析214

    6.5.3 Rollback()方法分析217

    6.6 DB解析219

    6.6.1 DB结构分析219

    6.6.2 Open()方法分析221

    6.6.3 Begin()方法分析224

    6.6.4 Update()和View()方法分析226

    6.6.5 Batch()方法分析227

    6.7 小结229

    第7章 深入理解LSM Tree原理232

    7.1 LSM Tree的发展背景232

    7.2 从零推导LSM Tree234

    7.2.1 存储介质的选择234

    7.2.2 写请求的处理234

    7.2.3 读请求的处理239

    7.3 LSM Tree的架构演进240

    7.3.1 数据更新分类240

    7.3.2 双组件LSM Tree结构241

    7.3.3 多组件LSM Tree结构242

    7.3.4 实际的LSM Tree结构243

    7.4 LSM Tree的核心问题245

    7.4.1 数据压缩/合并245

    7.4.2 数据分区246

    7.4.3 读放大、写放大和空间放大249

    7.4.4 写放大优化251

    7.5 小结252

    第8章 LSM派系存储引擎253

    8.1 LSM Tree存储引擎253

    8.1.1 LSM Tree工程应用253

    8.1.2 LSM Tree的KV分离存储

     技术WiscKey256

    8.2 LSM Hash存储引擎264

    8.2.1 LSM Hash的起源264

    8.2.2 Bitcask的核心原理265

    8.3 LSM Array存储引擎269

    8.3.1 LSM Array的设计思想269

    8.3.2 Moss的核心原理270

    8.4 其他LSM存储引擎274

    8.4.1 LSM存储引擎扩展274

    8.4.2 消息队列Kafka存储引擎275

    8.5 小结277

    第9章 LevelDB核心源码分析278

    9.1 LevelDB概述278

    9.1.1 LevelDB整体架构279

    9.1.2 LevelDB项目结构280
查看详情
12
相关图书 / 更多
深入浅出存储引擎   文小飞
深入浅出全链路压测
吴骏龙
深入浅出存储引擎   文小飞
深入解析Windows操作系统 (第7版)(卷2)
(美)安德里亚·阿列维(Andrea Allievi)
深入浅出存储引擎   文小飞
深入理解移动互联网
吴功宜 吴英 编著
深入浅出存储引擎   文小飞
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入浅出存储引擎   文小飞
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入浅出存储引擎   文小飞
深入理解物联网 吴功宜 吴英
吴功宜 吴英
深入浅出存储引擎   文小飞
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入浅出存储引擎   文小飞
深入浅出Spring Boot 3.x
杨开振
深入浅出存储引擎   文小飞
深入浅出数字经济
郭全中
深入浅出存储引擎   文小飞
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入浅出存储引擎   文小飞
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
深入浅出存储引擎   文小飞
深入人心:数字产品设计的底层逻辑
林婕