FlowDB: 性能超过RocksDB的时序数据库
FlowDB 是一款基于 Rust 构建的高性能嵌入式时序存储引擎,采用定制化 LSM-Tree 架构,专为时序数据和日志类负载深度优化。
无锁序列号分配:基于
AtomicU64+ Relaxed Ordering 的批量序列号分配,零竞争写入锁外 WAL 预编码:WAL 缓冲区在获取写锁前完成全部编码,临界区仅负责追加和插入,极大缩短锁持有时间
双态 MemTable 设计:活跃状态使用
Vec + HashMap(追加写入 O(1),缓存友好),冻结时才转换为BTreeMap,将排序开销延迟到刷盘阶段批量处理零拷贝写入路径:
write_batch_owned利用 Rust 所有权语义,直接 move 数据,无需 clone配合 TTL 机制(微秒精度),特别适合时序数据按时间窗口批量过期的场景
RocksDB 风格惰性迭代器:
ScanIterator不物化完整结果集,支持FusedIterator,内存占用恒定HTTP API 支持 JSON 和 Binary 两种写入格式
UDP 二进制协议适合高频小包写入场景(IoT、监控指标)
内置 Prometheus 格式指标输出(
/metrics),p50/p90/p99 延迟直方图
对比 RocksDB 基准测试:顺序写入 5.7M ops/s(1.92x)、并发写入 6.7M ops/s(1.63x)
模式 | 说明 |
|---|---|
嵌入式库 | 作为 Rust crate 直接集成,零运维开销 |
独立服务 | HTTP + UDP 双协议写入,内嵌 Web 管理面板 |