跳转至

rocksdb原理

1.1. MemTable

MemTable 是一种内存数据结构(跳表实现),在将数据刷新到 SST 文件之前保存数据。它同时提供读取和写入服务 。 1. 新写入始终将数据插入到 memtable 中,并且读取必须在从 SST 文件读取之前查询 memtable,因为 memtable 中的数据是最新的。 2. 当 memtable 满时,它就变得不可变,并被一个新的 memtable 替换。后台线程会将 memtable 的内容刷新到 SST 文件中,之后可以销毁 旧的memtable。

1.1.1. 跳表

基于 Skiplist 的 memtable 为读写、随机访问和顺序扫描提供了一般良好的性能。此外,它还提供了一些其他 memtable 实现当前不支持的有用功能,例如并发插入和带提示的插入。