データ形式やデータベースの性能主張を、共通契約と形式固有ワークロードで検証する公開研究ラボです。単一の「最強形式」は決めません。
English | 形式選定ガイド | 研究ログ | データ利用上の注意
最初のケーススタディは、2026-07-03に固定した公開GitHub Starsメタデータ2,331件・13列です。特定のStarsデータ専用ツールではなく、今後ほかのデータセットや主張を追加できる構成です。
equivalence拡張では、UCI Online Retail II、UCI Bank Marketing、NYC 311、OWID Energy、GeoNames cities500の小さな契約fixtureも扱います。これらは順位対象外です。manifestには公式取得URL、観測したsource hash、schema・NULL規則、正規化判断を記録し、更新され得る完全snapshotはGitではなくRelease assetとして保持します。
| lane | 検証する問い | 例 |
|---|---|---|
fair |
同じ型付きArrowテーブルを保存し、同じ行を返すときの容量と速度 | CSV、JSONL、Arrow IPC、Parquet、Lance、Vortex、適応TsFile |
claims |
公式が主張する強みを、適したワークロードで再現できるか | Lance FTS、Vortex scan、適応TsFile時系列、実験FastLanes証拠 |
prompt |
同じ7つの投影フィールドをLLMへ渡すときの正確なtoken数 | Compact TSV、object JSONL、array JSONL |
equivalence |
一般には同等に見える形式が、このデータとworkloadでも同等か | CSV対TSV、Arrow IPC対Feather、Parquet対ORC、JSONL対row serializer |
engine_container |
SQL engineが固有のdatabase fileを操作するときにどう異なるか | SQLite、DuckDB |
異なるlaneや異なる機種の結果は順位比較しません。同一laneのFULL_COMPARABLEだけが順位対象です。DuckDBはファイル形式ではなくSQL実行エンジンとして扱います。
equivalence laneは登録済みのpairだけを比較します。事前登録したprimary endpointはstorage/native_bytesです。その区間が±2%以内ならPRACTICALLY_EQUIVALENT、境界の完全な外側ならMEANINGFUL_DIFFERENCE、境界をまたぐ場合はINCONCLUSIVEです。p50とp95の比区間では±5%と±10%を記録しますが、これらは説明用のsecondary evidenceでありprimary verdictを変更しません。primary evidenceが欠落または失敗している場合はNOT_APPLICABLEとし、INCONCLUSIVEとNOT_APPLICABLEは順位対象にしません。外部zstd bytes、IQR、最大RSSも説明用です。この判定は、すべてのdatasetやworkloadで同等だという主張ではありません。
Arrow IPCのcodec variant(none、lz4、zstd)は同じArrow schema、往復検証、検索結果契約を使うfair lane内の比較です。別形式やlane横断のscoreとしては扱いません。
Parquetのcodec variant(snappy、gzip、zstd、既存の高圧縮設定zstd-19)も同じfair laneの規則で比較し、canonical tableの契約を維持します。
DISCOVERED -> ENCODED -> ROUNDTRIP_VERIFIED -> BENCHMARKED -> REPORTED
非対応はUNSUPPORTED、実行失敗はFAILEDとして公開記録に残します。13列の型・NULL・値・件数・canonical hashが一致しない形式は速度や容量の順位から除外します。
比較可能性は次の4種類です。
FULL_COMPARABLE: そのlane内で公平に比較可能。ADAPTED: スキーマやワークロードの適応が必要。PARTIAL: 契約の一部だけ検証可能。UNAVAILABLE: 再現可能なreader/writerを確認できない。
NixはPython 3.12、rust-src付きnightly-2026-07-15、cargo-fuzz、C/C++ネイティブツールを固定します。Python環境はuv.lockで固定します。
nix develop
uv sync --frozen
uv run --frozen format-bench run --profile prompt --dataset github-stars-2026-07-03 --fixture
uv run --frozen format-bench run --profile equivalence --dataset github-stars-2026-07-03 --fixture --pair csv-tsv--fixtureは順位対象外のsmoke testです。公開Releaseの全データを使う場合は次の順です。
uv run --frozen format-bench dataset fetch github-stars-2026-07-03
uv run --frozen format-bench prepare --dataset github-stars-2026-07-03 --run-dir runs/fair-local
uv run --frozen format-bench verify --run-dir runs/fair-local
uv run --frozen format-bench run --profile fair --dataset github-stars-2026-07-03 --run-dir runs/fair-local
uv run --frozen format-bench report --run-dir runs/fair-localnative robustness suiteは固定したArrow、Vortex、FastLanesのtargetを記録します。Arrowは記録したsource commitのcheckoutとnative/arrow/buildのbinary、VortexとFastLanesは記録したsource commitとHEADが一致するcheckoutのharnessを使います。FastLanesはcoverage-guidedではなくproject-seededとして扱います。公式native targetを確認できないLance、object JSONL、TsFileもUNSUPPORTED証拠として残します。未ビルドbinaryやsource不一致は成功扱いにしません。--targetは複数指定でき、--duration-secondsと--artifact-budget-mibで実行上限を指定します。
robustness reportには、targetごとのケース数、PASS/FAIL、crash、timeout、未完了理由、duration p50、artifact/source identityも集約します。これは信頼性の証拠であり、laneをまたぐscoreではありません。
uv run --frozen format-bench run --profile robustness --suite native --dataset github-stars-2026-07-03 \
--target vortex-file-io --target vortex-compress-roundtrip --duration-seconds 900手動のNative robustness Linux x86_64 workflowは、利用可能なnative targetをmatrixの1 job 1 targetで実行し、保持証拠を1 GiBに制限して14日間uploadします。LinuxとmacOSのartifact名は分離され、native crashやharness failureでも先にraw evidenceを保存してからjobを失敗扱いにします。
dispatchコマンドと証拠確認の手順はdocs/native-robustness.mdに記録しています。
測定値そのものはCIの合否に使いません。公開測定はmacOS ARMとLinux x86_64を別runにし、入力hash、commit、flake lock、依存版、seed、writer設定、失敗理由とともに保存します。
結果はまずv0.1.0実測総括を参照し、詳細値は機種別レポートとRelease assetで確認してください。
データはApple系リポジトリに偏り、分類は正解ラベルではありません。過去snapshotの生API応答と分類生成コードが残っていない制約もData Cardに明記しています。
新しい形式や主張は、一次資料、検証するclaim、適合ワークロード、期待結果、比較可能性をIssueに記載してください。round-tripと検索結果を検証できない速度値は採用しません。作業規則はAGENTS.md、詳しい背景は英語版README.mdを参照してください。
コードと独自文書はApache-2.0です。GitHub上の第三者メタデータに新しいライセンスは主張しません。