展开全部

主编推荐语

本书详细剖析了LevelDB从使用到设计实现的方方面面。

内容简介

本书可分为两部分,第一部分着重讲解LevelDB的基础知识,主要分为:基本数据结构,这是理解后续内容的基础,也可以加深对比较器、迭代器等常见数据结构的理解;基本使用,如数据库打开、关闭以及基本的读写操作;总体架构与设计思想,读后可掌握LevelDB的整体情况与设计思路;公用基础类,读后可了解LevelDB中如何实现数值编码、内存管理以及文件读取等。

第二部分着重讲解LevelDB各模块的实现细节,主要分为:Log模块的实现细节,以及如何通过Log进行崩溃恢复,并生成一个MemTable文件;MemTable模块的实现细节,以及MemTable超过内存阈值时如何生成一个SSTable文件;SSTable模块的实现细节;Compaction原理与多版本管理。

目录

  • 版权信息
  • 内容简介
  • 作者简介
  • 前言
  • 第1章 初识LevelDB
  • 1.1 键-值数据库的提出与价值
  • 1.2 LevelDB的诞生过程
  • 1.3 LevelDB的特性
  • 1.4 LevelDB的性能分析
  • 1.5 LevelDB的衍生产品
  • 1.5.1 RocksDB
  • 1.5.2 SSDB
  • 1.6 小结
  • 第2章 基本数据结构
  • 2.1 string与Slice
  • 2.2 错误处理Status
  • 2.3 key比较函数接口Comparator
  • 2.4 迭代器接口
  • 2.5 系统参数
  • 2.5.1 DB参数Options
  • 2.5.2 读操作参数ReadOptions
  • 2.5.3 写操作参数WriteOptions
  • 2.6 小结
  • 第3章 LevelDB使用入门
  • 3.1 源码简介
  • 3.1.1 目录结构
  • 3.1.2 安装与编译
  • 3.1.3 引用头文件
  • 3.2 创建(打开)与关闭数据库
  • 3.3 数据的读、写与删除
  • 3.4 数据批量操作
  • 3.5 迭代器与key的查询操作
  • 3.5.1 前向与反向迭代循环遍历
  • 3.5.2 按key的范围进行查询
  • 3.6 性能优化方案
  • 3.6.1 启用压缩
  • 3.6.2 启用Cache
  • 3.6.3 启用FilterPolicy
  • 3.6.4 key的命名设计
  • 3.7 小结
  • 第4章 总体架构与设计思想
  • 4.1 键-值存储系统的基本要求
  • 4.2 Bigtable与LevelDB
  • 4.3 主要模块功能介绍
  • 4.4 主要操作流程分析
  • 4.4.1 数据库Open流程分析
  • 4.4.2 数据Get流程分析
  • 4.4.3 数据Put与Write流程分析
  • 4.4.4 快照生成与读取分析
  • 4.5 小结
  • 第5章 公用基础类
  • 5.1 LevelDB跨平台编程
  • 5.1.1 LevelDB操作系统可移植方案
  • 5.1.2 LevelDB移植到操作系统接口规范
  • 5.1.3 POSIX可移植操作系统接口
  • 5.1.4 原子指针与内存屏障
  • 5.2 文件操作
  • 5.2.1 顺序文件操作
  • 5.2.2 随机文件操作
  • 5.2.3 Log文件操作
  • 5.3 Env操作环境抽象接口
  • 5.3.1 PosixEnv对象
  • 5.3.2 EnvWrapper与InMemoryEnv
  • 5.4 int数值编码
  • 5.4.1 什么是编码
  • 5.4.2 int定长数值编码
  • 5.4.3 int变长数值编码
  • 5.5 内存管理
  • 5.5.1 Arena内存池的基本思想
  • 5.5.2 Arena内存池的定义与原理
  • 5.5.3 Arena内存的分配
  • 5.5.4 内存使用率统计
  • 5.5.5 非内存池的内存分配优化
  • 5.6 小结
  • 第6章 Log模块
  • 6.1 Log文件格式定义
  • 6.2 Log文件读写操作
  • 6.2.1 Log文件写入
  • 6.2.2 Log文件读取
  • 6.3 记录Log文件
  • 6.4 从Log文件恢复MemTable
  • 6.5 小结
  • 第7章 MemTable模块
  • 7.1 MemTable插入与查找
  • 7.1.1 MemTable插入
  • 7.1.2 MemTable查找
  • 7.2 SkipList插入与查找
  • 7.2.1 SkipList插入
  • 7.2.2 SkipList查找
  • 7.3 MemTable生成SSTable
  • 7.4 小结
  • 第8章 SSTable模块
  • 8.1 SSTable文件格式
  • 8.1.1 SSTable的组成
  • 8.1.2 块格式
  • 8.1.3 数据索引区域
  • 8.1.4 数据区域
  • 8.1.5 元数据索引区域
  • 8.1.6 元数据区域
  • 8.2 SSTable的读写流程
  • 8.2.1 生成块
  • 8.2.2 读取块
  • 8.2.3 生成SSTable
  • 8.2.4 读取SSTable
  • 8.3 布隆过滤器的实现
  • 8.3.1 布隆过滤器的设计
  • 8.3.2 布隆过滤器的使用
  • 8.4 LRU Cache的实现
  • 8.4.1 LRU Cache的设计
  • 8.4.2 LRU Cache的使用
  • 8.5 小结
  • 第9章 多版本管理与Compaction原理
  • 9.1 多版本管理机制
  • 9.1.1 VersionEdit机制
  • 9.1.2 Version机制
  • 9.1.3 VersionSet机制
  • 9.1.4 Manifest机制
  • 9.2 Compaction原理
  • 9.2.1 触发时机
  • 9.2.2 文件选取
  • 9.2.3 执行流程
  • 9.2.4 文件清理
  • 9.3 小结
  • 附录 LevelDB的演进
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    5.0

    从本质上讲,LevelDB 是一个键 - 值数据库。本章首先介绍键 - 值数据库的基本概念、由来与具体用途;然后着重描述 LevelDB 的诞生过程、特性、性能,以求让读者了解 LevelDB 发展的技术背景,以及 LevelDB 丰富的功能与强悍的数据读写性能;最后针对目前 LevelDB 存在的不足,简要介绍几种基于 LevelDB 开发的衍生产品。

      转发
      评论

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。