Skip to content

mariadb-duckdb: switch to Parquet ingestion, remove PRIMARY KEY, add 2026-07-13 results#986

Merged
thevar1able merged 1 commit into
ClickHouse:mainfrom
mariadb-AlekseiBukhalov:update-mariadb-duckdb-no-pk
Jul 15, 2026
Merged

mariadb-duckdb: switch to Parquet ingestion, remove PRIMARY KEY, add 2026-07-13 results#986
thevar1able merged 1 commit into
ClickHouse:mainfrom
mariadb-AlekseiBukhalov:update-mariadb-duckdb-no-pk

Conversation

@mariadb-AlekseiBukhalov

@mariadb-AlekseiBukhalov mariadb-AlekseiBukhalov commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

MariaDB with DuckDB storage engine (ha_duckdb), CI build 70621.

Changes:

  • Remove PRIMARY KEY → no ART index overhead on load
  • Switch dataset ingestion from TSV (COPY FROM) to Parquet (INSERT via read_parquet())
  • start/stop: use mariadbd-safe / mariadb-admin instead of systemctl
  • start: cap duckdb_max_threads=nproc/2 on machines with >32 logical CPUs (optimal at physical core count; empirically verified 16→32→40→48→64→96 threads on c6a.metal)

Results — 2026-07-13, CI build 70621, no PRIMARY KEY:

Machine vCPU Load Data size Sequential hot total Concurrent QPS Error ratio
c6a.4xlarge 16 100 s 20.5 GB ~24 s 1.530 0.000
c6a.metal 192 125 s 20.6 GB ~5 s 13.947 0.000

Source: https://github.com/MariaDB/server/tree/11.4/storage/duckdb

@mariadb-AlekseiBukhalov mariadb-AlekseiBukhalov force-pushed the update-mariadb-duckdb-no-pk branch from 08c00e3 to 11d972a Compare July 13, 2026 13:47
@mariadb-AlekseiBukhalov mariadb-AlekseiBukhalov marked this pull request as draft July 13, 2026 14:22
… results

- Switch dataset ingestion from TSV to Parquet via run_in_duckdb/read_parquet
- Remove PRIMARY KEY → no ART index overhead on load
- start/stop: use mariadbd-safe / mariadb-admin instead of systemctl
- start: cap duckdb_max_threads=nproc/2 on machines with >32 logical CPUs
  (empirically optimal at physical core count; HT siblings add overhead)

Results (CI build 70621, no PRIMARY KEY):

  c6a.4xlarge (16 vCPU):  load=100 s, concurrent QPS=1.530
  c6a.metal  (192 vCPU):  load=125 s, concurrent QPS=13.947
@mariadb-AlekseiBukhalov mariadb-AlekseiBukhalov force-pushed the update-mariadb-duckdb-no-pk branch from 11d972a to c24fc25 Compare July 13, 2026 18:24
@mariadb-AlekseiBukhalov mariadb-AlekseiBukhalov marked this pull request as ready for review July 13, 2026 18:24
@thevar1able thevar1able self-assigned this Jul 15, 2026
@thevar1able thevar1able merged commit 3b53dd3 into ClickHouse:main Jul 15, 2026
1 check passed
Comment thread mariadb-duckdb/start

if sudo mariadb -e "SELECT 1" >/dev/null 2>&1; then
exit 0
if ! sudo mariadb -e "SELECT 1" >/dev/null 2>&1; then

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To keep in mind for future PRs: lib/benchmark-common.sh (the benchmark driver) implements similar timeout/wait logic already, see its function bench_start. It's fine to only start the database in this script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants