docs: add TPC-DS SF100 performance report#553
Conversation
leaves12138
left a comment
There was a problem hiding this comment.
The standalone page builds correctly, but the public performance conclusion needs a stronger evidence chain before publication. I found three blocking issues around measurement stability, reproducibility, and benchmark scope.
| </div> | ||
| <div> | ||
| <dt>Run configuration</dt> | ||
| <dd>0 warmup · 1 measured iteration</dd> |
There was a problem hiding this comment.
Blocking: this result uses 0 warmups and a single measured iteration, while benchmarks/tpcds/README.md's published procedure uses --warmup 1 --iterations 3. The headline gap is only 1.39 seconds over roughly 515 seconds (0.27%), which can easily be smaller than run-to-run or cache noise; one observation cannot establish parity. Please rerun both sources for multiple measured iterations under the same cache policy (ideally alternating source order), publish an aggregate such as the median plus dispersion, and derive the headline numbers from that dataset.
| <a href="https://github.com/apache/doris/pull/65381" target="_blank" rel="noreferrer">Doris Paimon Write Architecture and Rust FFI Hook #65381<!-- --> ↗</a> | ||
| <a href="https://github.com/StarRocks/starrocks/pull/73048" target="_blank" rel="noreferrer">StarRocks Paimon Vector Search #73048<!-- --> ↗</a> | ||
| </div> | ||
| <small>Community engineering update · July 20, 2026 · Results from a locally reproducible experiment</small> |
There was a problem hiding this comment.
Blocking: the page labels this a locally reproducible experiment, but the PR contains neither raw benchmark JSON nor enough metadata to reproduce or verify the numbers. The benchmark README explicitly requires the exact paimon-rust commit, generated-data scale and generator version, file counts and physical bytes, OS/CPU/memory/storage model, and exact commands for every published report. Please add those details and link or commit the two raw result files so reviewers can verify the totals, failed queries, and the 30/96 count.
| </span> PERFORMANCE MILESTONE · JUL 2026</div> | ||
| <h1><strong>Paimon Rust</strong> <em>At Native Speed</em> | ||
| </h1> | ||
| <p class="hero-lead">In a TPC-DS SF100 workload on DataFusion 54, Paimon Rust finishes the 96 comparable queries <strong>within 0.27% of native Parquet</strong>. For the queries that dominate execution time, Paimon is 12.9% faster in aggregate. Table semantics, snapshots, schema evolution, and lakehouse capabilities no longer need to come with a material analytical-performance penalty.</p> |
There was a problem hiding this comment.
Blocking accuracy issue: this benchmark harness imports the data into unpartitioned append-only Paimon tables (benchmarks/tpcds/README.md), so the run does not exercise primary-key merging, schema evolution, deletion vectors, row lineage, or multiple file formats. This sentence currently presents the result as evidence that those semantics carry no material performance penalty. Please scope the conclusion to the append-only SF100 read path tested here, and describe the broader features as capabilities rather than benchmarked outcomes.
66116ac to
48c03b1
Compare
48c03b1 to
5e9547d
Compare
leaves12138
left a comment
There was a problem hiding this comment.
The previous blocking concerns have been addressed. The benchmark protocol, reproducibility details, and scope are now sufficiently documented. The uncommitted raw JSON is acceptable given its size; a compact summary artifact would be a non-blocking future improvement.
Summary
Publish an auditable TPC-DS SF100 read-performance report comparing Paimon Rust with DataFusion's native Parquet reader. Across the 96 queries that complete under the shared 32 GiB runtime limit, Paimon finishes the workload within 9.3% of native Parquet; the gap is 3.1% for queries whose native-Parquet median is at least five seconds.
The source Parquet files use SNAPPY, while the Paimon rewrite uses ZSTD and occupies 23.25% less physical data-file storage. The timing comparison therefore includes the higher-compression codec's additional decompression CPU cost as well as its storage and I/O savings.
Changes
Testing
cargo cleancargo build --release -p paimon-tpcds-benchcargo fmt --all -- --checkpython3 scripts/validate_asf_yaml.pycd docs && mkdocs build --strictNotes
This is a TPC-DS-derived non-TPC benchmark, not an official TPC result. Q67, Q78, and Q97 are excluded from the aggregate because both sources exhaust the same 32 GiB DataFusion memory pool.