Leveldb源码解读(一)
Leveldb源码解读(一)
0.前沿
1.leveldb准备
1.1 简介
leveldb是一个key/value型的单机存储引擎,由google开发,并宣布在BSD许可下开放源代码。他是leveling+分区实现的LSM典型代表。
1.2 特性
  • key、value支持任意的byte类型数组,不单单支持字符串
  • LevelDb是一个持久化存储的KV系统,将大部分数据存储到磁盘
  • 按照记录key值顺序存储数据,并且LevleDb支持按照用户定义的比较函数进行排序
  • 操作接口简单,包括写/读记录以及删除记录,也支持针对多条操作的原子批量操作。
  • 支持数据快照(snapshot)功能,使得读取操作不受写操作影响,可以在读操作过程中始终看到一致的数据。
  • 支持数据压缩(snappy压缩)操作,有效减小存储空间、并增快IO效率。
  • LSM典型实现,适合写多读少。
1.3 源码编译与使用
  • 源码下载
git submodule update --init
  • 执行编译
cd leveldb
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release(Debug) .. && cmake --build .
具体操作如下