RocksDB 详解

RocksDB 详解

💡 原文中文,约4200字,阅读约需10分钟。
📝

内容提要

LSM树查询从底层开始,向上逐层查找,每层SSTable有序,可用二分查找加速。

🎯

关键要点

  • RocksDB是一个高性能的键值存储库,采用LSM树数据结构,支持高吞吐量写入和快速范围查询。

  • LSM树的优点包括高吞吐量写入、良好的性能和可扩展性,但合并操作可能影响查询性能和磁盘空间使用。

  • LSM树分为内存层(MemTable)和磁盘层,内存层用于缓存最新写入的数据,磁盘层分为多个层级。

  • MemTable采用有序数组、链表、hash表等数据结构,支持快速高吞吐量写入,Flush操作将数据写入磁盘。

  • Immutable MemTable是已刷写到磁盘的不可修改MemTable,Compaction过程中会合并多个Immutable MemTable。

  • SSTable是LSM树中的数据存储结构,数据按key有序存储,支持快速范围查询和迭代访问。

  • Compaction操作合并SSTable文件,减少冗余数据,提升读取性能,避免频繁随机写。

  • 压缩策略需考虑读放大、写放大和空间放大问题,以提高查询性能和存储效率。

  • Size-tiered策略通过统计SSTable数量和大小触发Compaction,减少SSTable数量和大小,提高查询性能。

  • Leveled策略通过合并相邻SSTable,减少查询时需要扫描的SSTable数量,提高查询效率。

➡️

继续阅读