プログラミング
F3
要約
F3は、効率性、相互運用性、拡張性を念頭に設計された次世代のオープンソースデータファイル形式です。Parquetのような既存形式のレイアウト上の欠点を改善しつつ、Wasmデコーダの組み込みにより高い相互運用性と将来性を持たせています。このプロジェクトは論文のアイデアを検証する研究プロトタイプであり、本番環境での使用は推奨されていません。
全文翻訳
F3: 将来のためのオープンソースデータファイル形式
F3は、効率性、相互運用性、拡張性を念頭に設計されたデータファイル形式です。Parquetのような旧世代の形式が持つレイアウト上の欠点を是正しつつ、組み込みのWasmデコーダによって良好な相互運用性と拡張性(別名:将来性)を維持します。
⚠️ このプロジェクトは論文のアイデアを検証する研究プロトタイプです。本番環境で使用すべきではありません。
ビルド手順
Debian 12を搭載したIntelマシンでのみテスト済みです。
git submodule update --init --recursive
./scripts/setup_debian.sh
# F3のPoCパッケージをビルド
cargo build -p fff-poc
# F3のユニットテストを実行
cargo test -p fff-poc
重要なディレクトリ
format: ファイル形式のFlatBuffer定義。
fff-poc: F3形式の主要コード。fff-core、fff-encoding、fff-format、fff-ude-wasmなどの他のサブディレクトリを参照します。
fff-bench: 論文に登場するベンチマークと実験。具体的には、fff-bench/examplesにマイクロ実験とe2e実験のほとんどが含まれているはずです。
fff-ude*: udeはUser-Defined-Encodingの略で、これらのディレクトリ内のコードはWasmデコーディング実装に関連しています。
scriptsとexp_scripts: 実験実行に関連するスクリプト。
論文の実験結果を再現する手順
詳細な手順については、doc/paper_reproduction.mdを参照してください。
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細についてはLICENSEを参照してください。
引用
このプロジェクトが有用であると感じたら、引用をご検討ください。
@article{zeng2025f3,
author = {Zeng, Xinyu and Meng, Ruijun and Prammer, Martin and McKinney, Wes and Patel, Jignesh M. and Pavlo, Andrew and Zhang, Huanchen},
title = {F3: The Open-Source Data File Format for the Future},
year = {2025},
issue_date = {September 2025},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {3},
number = {4},
url = {https://doi.org/10.1145/3749163},
doi = {10.1145/3749163},
abstract = {Columnar storage formats are the foundation for modern data analytics systems. The proliferation of open-source file formats (i.e., Parquet, ORC) allows seamless data sharing across disparate platforms. However, these formats were created over a decade ago for hardware and workload environments that are much different from today. Although these formats have incorporated some updates to their specification to adapt to these changes, not all deployments support those modifications, and too often systems cannot overcome the formats' deficiencies and limitations without a rewrite.In this paper, we present the Future-proof File Format (F3) project. It is a next-generation open-source file format with interoperability, extensibility, and efficiency as its core design principles. F3 obviates the need to create a new format every time a shift occurs in data processing and computing by providing a data organization structure and a general-purpose API to allow developers to add new encoding schemes easily. Each self-describing F3 file includes both the data and meta-data, as well as WebAssembly (Wasm) binaries to decode the data. Embedding the decoders in each file requires minimal storage (kilobytes) and ensures compatibility on any platform in case native decoders are unavailable. To evaluate F3, we compared it against legacy and state-of-the-art open-source file formats. Our evaluations demonstrate the efficacy of F3's storage layout and the benefits of Wasm-driven decoding.},
journal = {Proc. ACM Manag. Data},
month = sep,
articleno = {245},
numpages = {27},
keywords = {columnar storage, compression, extensibility, file format}
}