万本电子书0元读

万本电子书0元读

顶部广告

精通LevelDB电子书

作者专业:阿里巴巴和贝壳找房专家撰写 内容实用:深LevelDB架构与源码,精通键-值数据库 更上层楼:掌握谷歌Bigtable数据库单机版设计精髓 学以致用:基于LevelDB,发分布式数据库

售       价:¥

纸质售价:¥57.00购买纸书

10人正在读 | 0人评论 6.3

作       者:廖环宇,张仕华

出  版  社:机械工业出版社

出版时间:2021-11-01

字       数:16.7万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书详细剖析LevelDB从使用到设计实现的方方面面,读后可了解谷歌Bigtable数据库的设计精髓,逻辑上可分为两部分。 部分着重讲解LevelDB的基础知识,主要内容如下。 1)基本数据结构,这是理解后续内容的基础,也可以加深对比较器、迭代器等常见数据结构的理解。 2)基本使用,如数据库、关闭以及基本的读写操作。 3)总体架构与设计思想,读后可掌握LevelDB的整体情况与设计思路。 4)公用基础类,读后可了解LevelDB中如何实现数值编码、内存管理以及文件读取等。 第二部分着重讲解LevelDB各模块的实现细节,主要内容如下。 1)Log模块的实现细节,以及如何通过Log行崩溃恢复,并生成一个MemTable文件。 2)MemTable模块的实现细节,以及MemTable超过内存阈值时如何生成一个SSTable文件。 3)SSTable模块的实现细节。 4)Compaction原理与多版本管理。<br/>【推荐语】<br/>作者专业:阿里巴巴和贝壳找房专家撰写 内容实用:深LevelDB架构与源码,精通键-值数据库 更上层楼:掌握谷歌Bigtable数据库单机版设计精髓 学以致用:基于LevelDB,发分布式数据库<br/>【作者】<br/>廖环宇,中南大学硕士、阿里云高级算法专家与工业大脑算法团队负责人,长期致力于人工智能算法与工业大数据技术的研究和实践,主导过许多大型数据智能平台的发与应用。 张仕华,贝壳找房资深软件发工程师,毕业于北京科技大学,曾就职于360、滴滴。热衷源码研究与探究技术本质,合著有《Redis 5设计与源码分析》。<br/>
目录展开

内容简介

作者简介

前言

第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的演进

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部