F3
AI 深度解读
F3:面向未来的开源数据文件格式深度解读
背景
现代数据分析系统的基石是列式存储格式。过去十余年间,Parquet、ORC 等开源文件格式的普及,使得不同平台之间的数据共享变得无缝且高效。然而,这些格式诞生于一个与当今截然不同的硬件和工作负载环境。尽管规范层面已进行了一些更新以适应变化,但并非所有部署都支持这些修改。更严重的是,许多系统在遇到这些格式的固有缺陷和局限性时,往往不得不通过重写系统来克服,这极大地增加了技术栈的复杂性和维护成本。
在此背景下,F3(Future-proof File Format,面向未来的文件格式)项目应运而生。这是一个研究原型,旨在验证新一代数据文件格式的设计理念。该项目由 Zeng, Xinyu 等学者及工程师共同提出,并已在 ACM 相关期刊发表学术论文。需要特别注意的是,目前该项目仍处于研究原型阶段,不建议在生产环境中直接使用。
核心内容
F3 是一个专为效率、互操作性和可扩展性而设计的数据文件格式。它旨在解决上一代格式(如 Parquet)在布局上的不足,同时通过嵌入 Wasm(WebAssembly)解码器来保持良好的互操作性和可扩展性(即“面向未来”的特性)。
1. 核心设计理念
F3 的核心设计原则是互操作性、可扩展性和效率。其核心思想是避免在数据处理和计算发生转变时不得不创建新格式。通过提供一种数据组织结构和通用 API,F3 允许开发人员轻松添加新的编码方案。
2. 文件结构与自描述性
每个 F3 文件都是自描述的,不仅包含数据和元数据,还嵌入了用于解码数据的 WebAssembly (Wasm) 二进制文件。
- 嵌入式解码器:将解码器嵌入每个文件仅需极少的存储空间(千字节级别)。
- 平台兼容性:这种机制确保了在任何平台上,即使没有原生解码器,也能保证数据的兼容性。
3. 项目架构与代码结构
该项目基于 Rust 实现,主要包含以下模块:
- format:定义文件格式的 FlatBuffer 结构。
- fff-poc:F3 格式的主要代码实现,引用了其他子目录如
fff-core、fff-encoding、fff-format和fff-ude-wasm。 - fff-bench:包含论文中出现的基准测试和实验。其中
fff-bench/examples包含了大多数微基准测试和端到端(e2e)实验。 - fff-ude*:代表“用户定义编码”(User-Defined-Encoding),这些目录中的代码与 Wasm 解码实现相关。
- scripts 和 exp_scripts:与运行实验相关的脚本。
4. 构建与测试
项目仅在带有 Debian 12 的 Intel 机器上进行了测试。构建流程如下:
- 初始化子模块:
git submodule update --init --recursive - 设置环境:
./scripts/setup_debian.sh - 构建 PoC 包:
cargo build -p fff-poc - 运行单元测试:
cargo test -p fff-poc
详细步骤请参考 doc/paper_reproduction.md。
关键要点
- 解决代际遗留问题:F3 旨在解决 Parquet 等诞生于十余年前的格式在现代硬件和工作负载下的局限性,避免系统因格式缺陷而被迫重写。
- Wasm 驱动的可扩展性:通过在文件中嵌入轻量级的 Wasm 解码器,F3 实现了真正的“面向未来”。开发者可以轻松添加新的编码方案,而无需修改底层格式规范或依赖特定的原生库。
- 自描述与高兼容性:文件自包含数据和元数据,并内置解码逻辑,确保在任何平台上均可读取,消除了对特定环境依赖的痛点。
- 研究原型性质:目前 F3 是一个验证论文想法的研究原型(PoC),尚未达到生产就绪状态,用户需谨慎评估风险。
- 性能验证:评估结果显示,F3 的存储布局有效,且 Wasm 驱动的解码方式带来了显著优势,其性能优于传统的遗留格式和当前的先进开源格式。
- 开源许可:该项目采用 MIT 许可证,允许自由使用和修改。
意义与影响
F3 的提出标志着数据文件格式设计思路的一次重要转变。传统格式如 Parquet 虽然强大,但其封闭的编码体系和对原生实现的依赖,使得在面对新的压缩算法或数据处理需求时显得僵化。F3 通过引入 Wasm 作为解码载体,将“格式”与“解码逻辑”解耦,赋予了数据文件自我进化的能力。
从长远来看,F3 有望降低数据生态系统的碎片化程度。当数据文件能够携带其解码逻辑时,数据共享将不再受限于接收方的技术栈版本或特定库的支持情况。这对于跨平台数据交换、长期数据归档以及应对未来计算范式变化具有重要的战略意义。尽管目前仍处于早期阶段,但 F3 为下一代列式存储格式提供了一个极具潜力的技术范式。
引用信息: Zeng, Xinyu, et al. "F3: The Open-Source Data File Format for the Future." Proc. ACM Manag. Data, vol. 3, no. 4, Sept. 2025, pp. 245. DOI: 10.1145/3749163.
