精通LevelDB

廖环宇 张仕华
内容简介 本书详细剖析LevelDB从使用到设计实现的方方面面,读后可了解谷歌Bigtable数据库的设计精髓,逻辑上可分为两部分。 第一部分着重讲解LevelDB的基础知识,主要内容如下。 1)基本数据结构,这是理解后续内容的基础,也可以加深对比较器、迭代器等常见数据结构的理解。 2)基本使用,如数据库打开、关闭以及基本的读写操作。 3)总体架构与设计思想,读后可掌握LevelDB的整体情况与设计思路。 4)公用基础类,读后可了解LevelDB中如何实现数值编码、内存管理以及文件读取等。 第二部分着重讲解LevelDB各模块的实现细节,主要内容如下。 1)Log模块的实现细节,以及如何通过Log进行崩溃恢复,并生成一个MemTable文件。 2)MemTable模块的实现细节,以及MemTable超过内存阈值时如何生成一个SSTable文件。 3)SSTable模块的实现细节。 4)Compaction原理与多版本管理。 作者简介 廖环宇 中南大学硕士、阿里云高级算法专家与工业大脑算法团队负责人,长期致力于人工智能算法与工业大数据技术的研究和实践,主导过许多大型数据智能平台的开发与应用。 张仕华 贝壳找房资深软件开发工程师,毕业于北京科技大学,曾就职于360、滴滴。热衷源码研究与探究技术本质,合著有《Redis 5设计与源码分析》。 前言 为什么要写这本书 笔者在滴滴工作期间,公司某团队实现了一个兼容Redis协议的分布式NoSQL数据库Fusion。Fusion是构建在SSD磁盘上的存储服务,底层使用存储引擎RocksDB来保存数据。因为兼容Redis协议,所以在数据量特别大的一些场景下,我们开始使用Fusion替代之前使用的Redis。 RocksDB,是一个基于LevelDB开发、实现持久性键-值存储的C++库。而LevelDB则是由Google的Jeff…