FlowDB: 性能超过RocksDB的时序数据库

💡 原文中文,约700字,阅读约需2分钟。
📝

内容提要

FlowDB 是一款高性能的嵌入式时序存储引擎,基于 Rust 构建,专为时序数据和日志负载优化。它采用无锁序列号分配、锁外 WAL 预编码和双态 MemTable 设计,支持零拷贝写入和 TTL 机制,适合批量过期场景。提供 HTTP 和 UDP 协议,内置 Prometheus 指标,性能优于 RocksDB。

🎯

关键要点

  • FlowDB 是一款基于 Rust 构建的高性能嵌入式时序存储引擎,专为时序数据和日志类负载深度优化。

  • 采用无锁序列号分配,基于 AtomicU64 + Relaxed Ordering 的批量序列号分配,零竞争写入。

  • 锁外 WAL 预编码,WAL 缓冲区在获取写锁前完成编码,缩短锁持有时间。

  • 双态 MemTable 设计,活跃状态使用 Vec + HashMap,冻结时转换为 BTreeMap,延迟排序开销。

  • 支持零拷贝写入路径,利用 Rust 所有权语义,直接 move 数据,无需 clone。

  • 配合 TTL 机制,适合时序数据按时间窗口批量过期的场景。

  • 提供 HTTP API 支持 JSON 和 Binary 两种写入格式,UDP 二进制协议适合高频小包写入场景。

  • 内置 Prometheus 格式指标输出,支持延迟直方图。

  • 在基准测试中,顺序写入达到 5.7M ops/s,并发写入达到 6.7M ops/s,性能优于 RocksDB。

  • 可以作为 Rust crate 直接集成,或通过 HTTP + UDP 双协议作为独立服务。

➡️

继续阅读