Google的LevelDB介绍

简介

LevelDB是谷歌开源的的持久化KV单机数据库,具有很高的随机写,顺序读写性能,但是随机读性能很一般,比较适合查询较少,而写很多的场景。
这个就是LSM Tree的具体应用了

特点

这里使用的是levelDB的GoLang版本实现goleveldb
leveldb的存储到磁盘会生成以下的文件
image.png

LevelDB运行一段时间后,会在内存和磁盘中存放几种数据
内存中的数据

磁盘上的数据

image.png

LOG、MemTable、SSTable文件都是用来存储kv记录的
Manifest记载了SSTable各个文件的管理信息,比如属于哪个Level,文件名,最大最小key,这样帮助一些插入读取操作可以更快的定位key的位置,下面就是一个示例
image.png
随着Compation的进行,SSTable文件会发生变化,会有新的文件产生,老得被废弃,Manifest会随之变化,而CURRENT就是用来指出哪个Manifesy文件才是最新的

对于LevelDB的增删改查已经介绍过了 点击查看LSM数据模型及操作

参考