展开全部

主编推荐语

详细介绍存储引擎的原理及实现细节。

内容简介

全书共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、科普以及教材、教辅等领域。