跳到主要内容

RocksDB 类型

RocksDB 类型及使用场景

RocksDB 提供多种引擎类型以适配不同的工作负载。选择契合的引擎类型,是实现应用程序性能最优的核心前提。


1. RocksDB 引擎类型

RocksDB 主要提供以下几种引擎类型:

类型描述典型场景
默认数据库(Default DB)基于日志结构合并树(LSM)引擎的标准键值存储通用型存储、中小型数据集、嵌入式键值存储
事务型数据库(TransactionDB)具备ACID事务能力的默认数据库变体,支持原子提交控制平面元数据存储、多键原子更新、小型事务型数据集
乐观事务型数据库(OptimisticTransactionDB)采用乐观并发控制的轻量级事务引擎读多写少场景、高并发读操作、小型事务型工作负载
纯表/通用表/列族(PlainTable / Universal / ColumnFamily)专用存储格式或逻辑分区方案高读取放大工作负载、列式存储、大规模数据集、复杂查询模式

2. 典型使用场景

2.1 默认数据库(Default DB)

  • 适用于通用型键值存储场景
  • 无事务保障能力
  • 推荐用于高吞吐量写入结构化数据批量存储场景

2.2 事务型数据库(TransactionDB)

  • 提供完整的ACID事务保障
  • 适用于元数据、配置信息及控制平面键值存储场景
  • 支持多键原子更新
  • 在Kumo中,需强一致性保障的场景通常选用该类型

2.3 乐观事务型数据库(OptimisticTransactionDB)

  • 针对高并发读主导型工作负载优化
  • 采用乐观并发控制机制
  • 推荐用于事务冲突概率低的小型事务更新场景

2.4 其他类型(纯表/列族/通用表)

  • 适用于特定性能优化场景
  • 列族(ColumnFamily)支持键空间的逻辑隔离
  • 纯表(PlainTable)可降低超大规模数据集的读取放大效应
  • 通常用于大数据分析或日志存储场景

总结

  • 选择适配的RocksDB类型是保障性能与可靠性的关键
  • 通用键值存储场景 → 默认数据库(Default DB)
  • 事务型控制平面键值存储场景 → 事务型数据库(TransactionDB)/ 乐观事务型数据库(OptimisticTransactionDB)
  • 高性能分析型或专用工作负载场景 → 列族(ColumnFamily)/ 纯表(PlainTable)

后续章节将介绍配置、备份及快照策略,并提供实操示例。