ClickBench run.sh restarts process per try, losing hot-run caches

Open Beginner friendly
#21,696 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
rust, shell
Domain
cli, performance

Research direction

Start with datafusion-partitioned/run.sh and inspect how it invokes datafusion-cli for each try; compare the session flow with duckdb-parquet-partitioned. Run the benchmark script and verify that OS cache is dropped once, create.sql is executed once, and all three tries share one process so later tries can use hot-run caches.

Written by the indexing model from the issue text.

Description

datafusion-partitioned/run.sh invokes a fresh datafusion-cli -f create.sql ... for each of the 3 tries, not just try 1. Since create.sql does CREATE EXTERNAL TABLE ... LOCATION 'partitioned' and the default is collect_statistics = true, every try re-scans all Parquet footers in a cold process.

Other engines keep one process across tries — e.g. duckdb-parquet-partitioned runs all 3 tries in one duckdb hits.db session with parquet_metadata_cache=true. Per the ClickBench rules, tries 2–3 are meant to be hot; our script makes them effectively cold.

Fix: drop OS cache once before try 1, then run all 3 tries in a single datafusion-cli session that has already executed create.sql.

Dominant language
Rust
Stars
9.3k
Forks
2.4k
Avg merge
3d 8h
Merged PRs (30d)
354

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/datafusion

All issues in apache/datafusion

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.