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 管理面板

聊天