Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
5ef261f
Add a sql based benchmark framework with tpch as the initial benchmar…
Omega359 Apr 17, 2026
dd498c2
Merge remote-tracking branch 'upstream/main' into new_sql_benchmark
Omega359 Apr 17, 2026
1561e99
Code cleanup, improvements and added tests. AI assistance was used fo…
Omega359 Apr 18, 2026
74e3b16
Merge branch 'main' into new_sql_benchmark
Omega359 Apr 18, 2026
f847168
Fixed an issue with missing result files causing benchmarks to fail e…
Omega359 Apr 20, 2026
dca99d7
Merge remote-tracking branch 'upstream/main' into new_sql_benchmark
Omega359 Apr 20, 2026
00a34ba
Added support for defaults for true/false version of variable substit…
Omega359 Apr 20, 2026
caf83c3
Merge branch 'main' into new_sql_benchmark
Omega359 Apr 20, 2026
238d0a6
Update benchmarks/sql_benchmarks/tpch/queries/q14.sql
Omega359 Apr 21, 2026
0b7c546
Update benchmarks/sql_benchmarks/tpch/queries/q06.sql
Omega359 Apr 22, 2026
7bc76dd
Update benchmarks/sql_benchmarks/tpch/queries/q01.sql
Omega359 Apr 22, 2026
939895f
Update benchmarks/sql_benchmarks/tpch/queries/q04.sql
Omega359 Apr 22, 2026
ebbd4c9
Update benchmarks/sql_benchmarks/tpch/queries/q22.sql
Omega359 Apr 22, 2026
12862ac
Update benchmarks/sql_benchmarks/tpch/queries/q05.sql
Omega359 Apr 22, 2026
b1c4a3c
Update benchmarks/sql_benchmarks/tpch/queries/q08.sql
Omega359 Apr 22, 2026
e725101
Update benchmarks/src/sql_benchmark.rs
Omega359 Apr 22, 2026
12379ff
Update benchmarks/sql_benchmarks/tpch/queries/q09.sql
Omega359 Apr 22, 2026
fb88677
Update benchmarks/sql_benchmarks/tpch/queries/q11.sql
Omega359 Apr 22, 2026
0a48d0c
Update benchmarks/sql_benchmarks/tpch/queries/q12.sql
Omega359 Apr 22, 2026
174ea37
Update benchmarks/sql_benchmarks/tpch/queries/q13.sql
Omega359 Apr 22, 2026
62b9fc8
Update benchmarks/sql_benchmarks/tpch/queries/q16.sql
Omega359 Apr 22, 2026
9c086aa
Update benchmarks/sql_benchmarks/tpch/queries/q17.sql
Omega359 Apr 22, 2026
ac5dd46
Update benchmarks/sql_benchmarks/tpch/queries/q19.sql
Omega359 Apr 22, 2026
cde286b
Update benchmarks/sql_benchmarks/tpch/queries/q20.sql
Omega359 Apr 22, 2026
09fd8f9
Update benchmarks/sql_benchmarks/tpch/queries/q10.sql
Omega359 Apr 22, 2026
a94e2f9
Merge branch 'main' into new_sql_benchmark
Omega359 Apr 22, 2026
6b612e8
Updates from reviews.
Omega359 Apr 22, 2026
f739c86
Fix handling of query arg.
Omega359 Apr 22, 2026
aae13b2
Merge branch 'main' into new_sql_benchmark
Omega359 Apr 22, 2026
7b4b93d
Refactored the README.md to address some of the PR feedback.
Omega359 Apr 22, 2026
b107b2f
Merge branch 'main' into new_sql_benchmark
Omega359 Apr 23, 2026
e48430e
Enabled env config for options.
Omega359 Apr 23, 2026
6d4b7df
Removed config that duplicates things that can be set via sessionconfig.
Omega359 Apr 23, 2026
3e928f3
Updates from PR feedback.
Omega359 Apr 23, 2026
6b876ce
Fix issue with order vs orders.
Omega359 Apr 23, 2026
9ca3a79
Drop tables after each benchmark for tpch_mem.
Omega359 Apr 23, 2026
f16af4e
Merge remote-tracking branch 'refs/remotes/upstream/main' into new_sq…
Omega359 Apr 25, 2026
3e64d65
Inline template file and queries into the tpch benchmark files. Fixed…
Omega359 Apr 25, 2026
ffc344c
Merge remote-tracking branch 'upstream/main' into new_sql_benchmark
Omega359 Apr 28, 2026
6031057
Fixed merge conflict with upstream.
Omega359 Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion benchmarks/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
data
results
data_csv
./results/
venv
!sql_benchmarks/**/results/
8 changes: 7 additions & 1 deletion benchmarks/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ mimalloc_extended = ["libmimalloc-sys/extended"]
arrow = { workspace = true }
async-trait = "0.1"
bytes = { workspace = true }
clap = { version = "4.5.60", features = ["derive"] }
clap = { version = "4.6.0", features = ["derive", "env"] }
criterion = { workspace = true, features = ["html_reports"] }
datafusion = { workspace = true, default-features = true }
datafusion-common = { workspace = true, default-features = true }
env_logger = { workspace = true }
Expand All @@ -63,3 +64,8 @@ tokio-util = { version = "0.7.17" }

[dev-dependencies]
datafusion-proto = { workspace = true }
tempfile = { workspace = true }

[[bench]]
harness = false
name = "sql"
29 changes: 17 additions & 12 deletions benchmarks/bench.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ BENCHMARK=all
DATAFUSION_DIR=${DATAFUSION_DIR:-$SCRIPT_DIR/..}
DATA_DIR=${DATA_DIR:-$SCRIPT_DIR/data}
CARGO_COMMAND=${CARGO_COMMAND:-"cargo run --release"}
SQL_CARGO_COMMAND=${SQL_CARGO_COMMAND:-"cargo bench --bench sql"}
PREFER_HASH_JOIN=${PREFER_HASH_JOIN:-true}
SIMULATE_LATENCY=${SIMULATE_LATENCY:-false}

Expand Down Expand Up @@ -685,14 +686,16 @@ run_tpch() {
echo "Internal error: Scale factor not specified"
exit 1
fi
TPCH_DIR="${DATA_DIR}/tpch_sf${SCALE_FACTOR}"

RESULTS_FILE="${RESULTS_DIR}/tpch_sf${SCALE_FACTOR}.json"
echo "RESULTS_FILE: ${RESULTS_FILE}"
FORMAT=$2
echo "Running tpch benchmark..."

FORMAT=$2
debug_run $CARGO_COMMAND --bin dfbench -- tpch --iterations 5 --path "${TPCH_DIR}" --scale-factor "${SCALE_FACTOR}" --prefer_hash_join "${PREFER_HASH_JOIN}" --format ${FORMAT} -o "${RESULTS_FILE}" ${QUERY_ARG} ${LATENCY_ARG}
debug_run env BENCH_NAME=tpch \
BENCH_SIZE="${SCALE_FACTOR}" \
PREFER_HASH_JOIN="${PREFER_HASH_JOIN}" \
TPCH_FILE_TYPE="${FORMAT}" \
SIMULATE_LATENCY="${SIMULATE_LATENCY}" \
${QUERY:+BENCH_QUERY="${QUERY}"} \
bash -c "$SQL_CARGO_COMMAND"
}

# Runs the tpch in memory (needs tpch parquet data)
Expand All @@ -702,13 +705,15 @@ run_tpch_mem() {
echo "Internal error: Scale factor not specified"
exit 1
fi
TPCH_DIR="${DATA_DIR}/tpch_sf${SCALE_FACTOR}"

RESULTS_FILE="${RESULTS_DIR}/tpch_mem_sf${SCALE_FACTOR}.json"
echo "RESULTS_FILE: ${RESULTS_FILE}"
echo "Running tpch_mem benchmark..."
# -m means in memory
debug_run $CARGO_COMMAND --bin dfbench -- tpch --iterations 5 --path "${TPCH_DIR}" --scale-factor "${SCALE_FACTOR}" --prefer_hash_join "${PREFER_HASH_JOIN}" -m --format parquet -o "${RESULTS_FILE}" ${QUERY_ARG} ${LATENCY_ARG}

debug_run env BENCH_NAME=tpch \
BENCH_SIZE="${SCALE_FACTOR}" \
TPCH_FILE_TYPE="mem" \
PREFER_HASH_JOIN="${PREFER_HASH_JOIN}" \
SIMULATE_LATENCY="${SIMULATE_LATENCY}" \
${QUERY:+BENCH_QUERY="${QUERY}"} \
bash -c "$SQL_CARGO_COMMAND"
}

# Runs the tpcds benchmark
Expand Down
Loading
Loading