Skip to content

存储与运行架构

InfluxDB 1.x/2.x 与 InfluxDB 3 是两代不同架构。前者围绕 TSM、TSI、WAL 和 Cache 构建;后者使用 Rust、Apache Arrow、DataFusion、Parquet 和对象存储思想重新设计。


InfluxDB 1.x/2.x

组件作用
WAL保存尚未进入持久 TSM 文件的写入,支持崩溃恢复
Cache汇集近期写入并形成 Snapshot
TSM面向时序块的压缩持久文件
TSI磁盘化 Series Index,降低高基数索引的内存依赖
Compaction合并文件、处理删除标记并优化读取布局

高写入、Compaction 和查询共享磁盘资源。磁盘吞吐不足时可能形成 Cache、WAL、Compaction 积压和查询延迟的连锁反应。


InfluxDB 3

InfluxDB 3 使用列式内存格式与 Parquet 持久化,SQL 和 InfluxQL 由 DataFusion 执行。查询需要合并近期尚未持久化的数据与对象文件中的历史数据,并根据 Catalog 定位分区和 Schema。

Core、Enterprise、Clustered/Cloud 的具体组件部署和持久化能力不同,不能把 Clustered 架构图直接当成单机 Core 的进程拓扑。


两代架构对照

维度1.x/2.x3.x
持久格式TSMParquet 为核心
索引关注Series Cardinality、TSI列式 Schema、分区、缓存与对象文件
查询引擎InfluxQL / Flux 体系DataFusion SQL / InfluxQL
扩展方式OSS 单机与旧企业集群Core、Enterprise、Cloud 分层
迁移旧文件不能简单原地变成新存储通常通过 API、导出导入或迁移工具重写数据

参考资料