RocksDB
简介
RocksDB是Facebook基于LevelDB开发的一种嵌入式Key-value存储系统,该数据库能够充分利用闪存的性能,大大提升应用服务器的速度。 这是一个c++库,用于存储键和值,可以是任意大小的字节流。支持原子读和写。 RocksDB具有高度灵活的配置功能,可以通过配置使其运行在各种各样的生产环境,包括纯内存,Flash,硬盘或HDFS。它支持各种压缩算法,并提供了便捷的生产环境维护和调试工具。
- 内存结构memtable
- 类似事务日志角色的WAL文件:
- 持久化的SST文件:
写流程
SST file
|
|
Compaction
Compaction策略
- Leveled Compaction(默认策略):Compaction 触发频率相对高,读放大低,写放大高
- Universal Compaction:Compaction 触发频率相对低,读放大高,写放大低
- FIFO Compaction:几乎不发生 Compaction,读放大高,写放大几乎没有