计算机
类型
可以朗读
语音朗读
218千字
字数
2024-04-01
发行日期
展开全部
主编推荐语
详细介绍存储引擎的原理及实现细节。
内容简介
全书共9章,分为三部分。
第一部分(第1~3章)讲解存储引擎的全貌,涉及存储引擎中高频使用的数据结构、存储介质等,为深入学习后面的内容做铺垫。
第二部分(第4~6章)介绍基于B+树的存储引擎,重点介绍为什么选择B+树作为存储引擎索引结构、B+树存储引擎解决哪些问题以及如何解决,并以BoltDB存储引擎项目为例来讲解核心原理与实现细节。
第三部分(第7~9章)介绍基于LSM派系的存储引擎,重点介绍LSM Tree中各组件的功能及作用,最后剖析了LevelDB项目的核心原理与实现细节。
目录
- 版权信息
- 前言
- 第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 小结
- 后记
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。