作品简介

全书分为3个部分:第一部分介绍LevelDB的背景知识,主要描述LevelDB是什么,具有什么样的特性,有什么样的应用场景。此外,分析LevelDB的源代码目录结构,介绍其总体架构与设计思想,并对个各个子模块的功能进行简要的描述。第二部分,按前面划分好的软件模块,对每一个模块进行详细的介绍。在模块详细介绍时,着重讲清每个模块的原理及其在LevelDB中的具体作用,并有针对性的加入一些C++编程规范相关的内容。通过阅读本书,读者不仅能学习高性能Kev/Value数据库的实现原理,还能掌握LevelDB中几个经典的数据结构与模块,如SSTable、LSM等,对未来的应用与开发设计提供重要的参考。

廖环宇,中南大学硕士、阿里云高级算法专家与工业大脑算法团队负责人,长期致力于人工智能算法与工业大数据技术的研究和实践,主导过许多大型数据智能平台的开发与应用。

张仕华,贝壳找房资深软件开发工程师,毕业于北京科技大学,曾就职于360、滴滴。热衷源码研究与探究技术本质,合著有《Redis 5设计与源码分析》。

作品目录

  • 内容简介
  • 作者简介
  • 前言
  • 第1章 初识LevelDB
  • 1.1 键-值数据库的提出与价值
  • 1.2 LevelDB的诞生过程
  • 1.3 LevelDB的特性
  • 1.4 LevelDB的性能分析
  • 1.5 LevelDB的衍生产品
  • 1.6 小结
  • 第2章 基本数据结构
  • 2.1 string与Slice
  • 2.2 错误处理Status
  • 2.3 key比较函数接口Comparator
  • 2.4 迭代器接口
  • 2.5 系统参数
  • 2.6 小结
  • 第3章 LevelDB使用入门
  • 3.1 源码简介
  • 3.2 创建(打开)与关闭数据库
  • 3.3 数据的读、写与删除
  • 3.4 数据批量操作
  • 3.5 迭代器与key的查询操作
  • 3.6 性能优化方案
  • 3.7 小结
  • 第4章 总体架构与设计思想
  • 4.1 键-值存储系统的基本要求
  • 4.2 Bigtable与LevelDB
  • 4.3 主要模块功能介绍
  • 4.4 主要操作流程分析
  • 4.5 小结
  • 第5章 公用基础类
  • 5.1 LevelDB跨平台编程
  • 5.2 文件操作
  • 5.3 Env操作环境抽象接口
  • 5.4 int数值编码
  • 5.5 内存管理
  • 5.6 小结
  • 第6章 Log模块
  • 6.1 Log文件格式定义
  • 6.2 Log文件读写操作
  • 6.3 记录Log文件
  • 6.4 从Log文件恢复MemTable
  • 6.5 小结
  • 第7章 MemTable模块
  • 7.1 MemTable插入与查找
  • 7.2 SkipList插入与查找
  • 7.3 MemTable生成SSTable
  • 7.4 小结
  • 第8章 SSTable模块
  • 8.1 SSTable文件格式
  • 8.2 SSTable的读写流程
  • 8.3 布隆过滤器的实现
  • 8.4 LRU Cache的实现
  • 8.5 小结
  • 第9章 多版本管理与Compaction原理
  • 9.1 多版本管理机制
  • 9.2 Compaction原理
  • 9.3 小结
  • 附录 LevelDB的演进
展开全部