< 返回版块

shenjinti 发表于 2026-06-02 21:39

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

Ext Link: https://github.com/restsend/flowdb

评论区

写评论

还没有评论

1 共 0 条评论, 1 页