-
Notifications
You must be signed in to change notification settings - Fork 282
fix(datafusion): Update docs, skip concurrent_qps, Skip re-downloading partitioned files #943
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,9 +1,14 @@ | ||
| #!/bin/bash | ||
| # datafusion queries the parquet files via an external table at LOCATION | ||
| # 'partitioned' (see create.sql). The shared bench_download fetches the | ||
| # parquet files into CWD; move them into the expected subdir. | ||
| # parquet files into CWD; hard-link them into the expected subdir. | ||
| # | ||
| # Note: don't move them to avoid re-downloading each time | ||
| set -e | ||
|
|
||
| mkdir -p partitioned | ||
| mv hits_*.parquet partitioned/ 2>/dev/null || true | ||
| for f in hits_*.parquet; do | ||
| ln -f "$f" "partitioned/$f" | ||
| done | ||
|
|
||
| sync |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -25,7 +25,7 @@ All with no EBS optimization and no instance store. | |
| 2. Wait for the status checks to pass, then ssh to EC2: `ssh ubuntu@{ip}` | ||
| 3. `git clone https://github.com/ClickHouse/ClickBench` | ||
| 4. `cd ClickBench/datafusion` | ||
| 5. `vi benchmark.sh` and modify the following line to target the DataFusion version | ||
| 5. `vi install` and modify the following line to target the DataFusion version | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. #860 changes the script that need to be updated |
||
|
|
||
| ```bash | ||
| git checkout 53.1.0 | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -3,4 +3,7 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| export BENCH_DOWNLOAD_SCRIPT="download-hits-parquet-single" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| export BENCH_DURABLE=yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| export BENCH_RESTARTABLE=no | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # skip concurrent_qps tests by default as datafusion-cli is configured | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # for single user/single process usage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| export BENCH_CONCURRENT_DURATION="${BENCH_CONCURRENT_DURATION:-0}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. When I ran the rewritten script on a c6a.4xlarge, the kernel repeatedly killed $ sudo dmesg
...
[ 2474.473278] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-1000.slice/user@1000.service/tmux-spawn-15c64bd8-c60d-4843-bf48-c65eac5ced5e.scope,task=datafusion-cli,pid=19689,uid=1000
[ 2474.473439] Out of memory: Killed process 19689 (datafusion-cli) total-vm:18148748kB, anon-rss:7049888kB, file-rss:2872kB, shmem-rss:0kB, UID:1000 pgtables:15880kB oom_score_adj:0
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The newly rewritten "benchmark-common.sh" appears to include new code to do a "concurrency" test which launches a bunch of concurrent ClickBench/lib/benchmark-common.sh Lines 385 to 418 in a377499
I don't think this type of test makes sense for a stateless engine like DataFusion and doesn't reflect how people use this. Each Systems built with DataFusion absolutely can and do implement various multi-user resource management policies, but each picks the policy that is best suited for its requirements. DataFusion does not mandate any particular one. If we want to include a qps number for
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fascinatingly there are recent results checked in for a c6a.4xlarge that have a ClickBench/datafusion-partitioned/results/20260511/c6a.4xlarge.json Lines 12 to 13 in a377499
These appear to be added in 6d5ee0a by @alexey-milovidov, as part of PR #860 and I don't see any comments / additional context of how it was generated) 🤔 Given that the kernel just OOM kills my runner, I don't know how to reproduce this number. Thus I think it is better and more accurate to disable the qps measurement for DataFusion and report "null" instead |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| exec ../lib/benchmark-common.sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See rationale below