F3:面向未来的文件格式

查看原文 HN 讨论

文章摘要

F3(Future File Format)是一种新一代的列式数据文件格式,被设计为 Parquet、ORC 等传统格式的开源替代品。它是一个来自学术合作的研究原型,相关论文发表于 SIGMOD 2026。

F3 试图解决的核心问题在于:Parquet 和 ORC 都诞生于十多年前,是为当时的硬件和工作负载模式设计的。尽管这些格式后续也有更新,但并非所有部署都支持修改,而且它们存在一些架构上的缺陷与局限,难以在不重写整个系统的前提下彻底解决。F3 的目标正是在提供更好可扩展性的同时,修补这些架构上的短板。

该格式围绕三大核心目标设计:互操作性(在不同平台间无缝共享数据)、可扩展性(通过内嵌的 WebAssembly 解码器实现面向未来的适应能力)、高效性(更优的存储布局和压缩)。

F3 最大的创新在于:它把 WebAssembly(Wasm)二进制文件直接嵌入到文件内部用于解码数据。这种自描述(self-describing)的方式只需要几 KB 的存储开销,却能保证在任何平台上的兼容性,从而摆脱了对原生解码器的依赖——理论上,无论未来出现什么新的编码方案,只要文件自带 Wasm 解码器,旧工具就能读取新文件。

论文作者阵容颇为豪华,包括 Xinyu Zeng、Ruijun Meng、Martin Prammer、Wes McKinney(Pandas 和 Arrow 的创造者)、Jignesh M. Patel、Andrew Pavlo 和 Huanchen Zhang。项目还提供了全面的基准测试,将 F3 与传统格式和现代格式进行对比,展示了其在存储和解码性能上的提升。

HN 评论精华

vouwfietsman(652 赞) 提出了对 F3 可行性的根本性质疑:他不解为什么如此简陋的落地页能获得这么多赞;他指出决定文件格式成败的是兼容性而非创新;他认为 F3 并没有解决 Parquet 的主要局限(单文件只能存一张表);并主张更好的随机访问能力不足以弥补其在分析性能上的牺牲。

围绕”兼容性问题”,多位评论者呼应了这一观点:Parquet 的统治地位源于其无所不在的工具支持,而非技术上的优越。要推广一种新格式,需要拿出”足够亮眼的成果”来克服这种惯性,而 F3 据称并未提供。

不过也有辩护的声音。aduffy(Vortex 开发者) 反驳说,把新格式一概斥为无意义,是忽视了真实存在的缺陷。他强调:有一篇研究论文详细论述了 Parquet 的架构局限;Vortex、Lance、F3 等新兴格式正在各自解决具体问题;这些格式的应用场景已经超出传统分析,比如同时需要批量访问和随机访问的机器学习工作负载。

在安全与设计方面,内嵌 Wasm 的批评 引发了不少担忧:在数据文件中执行任意代码存在风险,包括拒绝服务(DoS)攻击、压缩炸弹(compression bomb)漏洞,以及当解码器需要打补丁时的维护负担。但辩护者指出,Wasm 的沙箱机制可以阻止 I/O 访问,配合资源限制能够缓解这些风险。

此外,Arainach 等多位评论者批评 README 写得太含糊——它始终没有清楚说明 F3 究竟解决了什么问题、哪些使用场景能从中受益。