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)
后续章节将介绍配置、备份及快照策略,并提供实操示例。