You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ClickBench Q35 shows a significant MatrixOne performance gap against the DuckDB reference. The values below are elapsed seconds. Each result array is the three measurements emitted by the adapter: [run 1, run 2, run 3]; warm median is the median of the available run-2/run-3 values.
Query
SELECT1, URL, COUNT(*) AS c FROM hits GROUP BY1, URL ORDER BY c DESCLIMIT10;
Performance comparison
Engine
Run 1
Run 2
Run 3
Warm median
MatrixOne
55.370
54.120
57.060
55.590
DuckDB
15.413
1.164
1.136
1.150
MatrixOne / DuckDB warm-median ratio: 48.34x
Warm-median difference: 54.440 seconds
Raw MatrixOne timing array: [55.370, 54.120, 57.060]
Raw DuckDB timing array: [15.413, 1.164, 1.136]
Environment and data
MatrixOne measurement:
Branch: main
Commit: 249a458ba567b26d1818fb0496b449135cb05ef2
Hardware: server 129
OS: CentOS
Dataset: ClickBench hits, 99,997,497 rows
MatrixOne raw output: /mnt/fastdata/ClickBench/matrixone/raw_results.md
DuckDB reference:
Result file: duckdb/results/20260511/c6a.metal.json
Machine label: c6a.metal
Result date: 2026-05-11
The two measurements were not collected on the same hardware. The DuckDB value is the latest local c6a.metal reference available; an apples-to-apples rerun on the same server is recommended before assigning a final performance regression magnitude.
Steps to reproduce
Follow the reproduction steps in #27665, including the MatrixOne and DuckDB adapter READMEs:
In the DuckDB adapter, run ./benchmark.sh after setting DUCKDB_BIN_PATH, DUCKDB_DB_PATH, and DUCKDB_DATA_PATH as described in the README.
Compare the Q35 entry in queries.sql; run the query three times after loading the data and record elapsed time and whether the query completes successfully.
Notes
The timing gap is the subject of this sub-issue; query-result correctness should be verified independently.
Expected behavior
On comparable hardware with the same dataset, MatrixOne should not exhibit a large query-level performance gap for this workload. Please investigate the execution plan, operators, memory use, and any spill or connection/timeout behavior relevant to this query.
Parent issue
This is a sub-issue of #27665: significant gap in ClickBench query performance between MatrixOne and DuckDB.
Summary
ClickBench Q35 shows a significant MatrixOne performance gap against the DuckDB reference. The values below are elapsed seconds. Each result array is the three measurements emitted by the adapter:
[run 1, run 2, run 3];warm medianis the median of the available run-2/run-3 values.Query
Performance comparison
[55.370, 54.120, 57.060][15.413, 1.164, 1.136]Environment and data
MatrixOne measurement:
main249a458ba567b26d1818fb0496b449135cb05ef2server 129hits, 99,997,497 rows/mnt/fastdata/ClickBench/matrixone/raw_results.mdDuckDB reference:
duckdb/results/20260511/c6a.metal.jsonc6a.metal2026-05-11The two measurements were not collected on the same hardware. The DuckDB value is the latest local
c6a.metalreference available; an apples-to-apples rerun on the same server is recommended before assigning a final performance regression magnitude.Steps to reproduce
hits.tsv.gzdataset for both engines (the adapters support loading the gzip file directly)../benchmark.shafter settingMATRIXONE_HOME,MATRIXONE_DATA_FILE,MATRIXONE_HOST,MATRIXONE_PORT,MATRIXONE_USER, andMATRIXONE_PASSWORDas described in [Bug]: significant gap in clickbench query performance between matrixone and duckdb #27665../benchmark.shafter settingDUCKDB_BIN_PATH,DUCKDB_DB_PATH, andDUCKDB_DATA_PATHas described in the README.queries.sql; run the query three times after loading the data and record elapsed time and whether the query completes successfully.Notes
Expected behavior
On comparable hardware with the same dataset, MatrixOne should not exhibit a large query-level performance gap for this workload. Please investigate the execution plan, operators, memory use, and any spill or connection/timeout behavior relevant to this query.