Skip to content

hyper-parquet: Fix caching of Parquet files and add single-file variant#971

Merged
thevar1able merged 2 commits into
ClickHouse:mainfrom
caetanosauer:hyper-parquet-persistent-external-plancache
Jul 17, 2026
Merged

hyper-parquet: Fix caching of Parquet files and add single-file variant#971
thevar1able merged 2 commits into
ClickHouse:mainfrom
caetanosauer:hyper-parquet-persistent-external-plancache

Conversation

@caetanosauer

Copy link
Copy Markdown
Contributor

The hyper-parquet harness created a TEMP external table per ./query
connection. With the persistent-server model (issue #936) the driver
opens a fresh connection per try. This caused our plan cache to be wiped,
requiring re-sampling the data on every hot run as well. To properly
test a cached scenario, this commit changes our harness to create
persistent external tables and maintain an attached database throughout
the server's lifetime. The query iterations themselves still open a
fresh connection each time.

We also introduce the single variant for the parquet lane, now
reporting both hyper-parquet-single and hyper-parquet-partitioned.

As a drive-by change, we also drop ::bigint casts from ClickBench Q29,
since those are not needed anymore, matching the queries used by other
systems as well.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

@caetanosauer

Copy link
Copy Markdown
Contributor Author

@rschu1ze Would appreciate if you can take a look at this one. Thanks!

@rschu1ze

Copy link
Copy Markdown
Member

Sorry, I'm rather busy this week, expect some delay. In the meantime, maybe you could resolve the merge conflicts?

The hyper-parquet harness created a TEMP external table per ./query
connection. With the persistent-server model (issue ClickHouse#936) the driver
opens a fresh connection per try. This caused our plan cache to be wiped,
requiring re-sampling the data on every hot run as well. To properly
test a cached scenario, this commit changes our harness to create
persistent external tables and maintain an attached database throughout
the server's lifetime. The query iterations themselves still open a
fresh connection each time.

We also introduce the `single` variant for the parquet lane, now
reporting both `hyper-parquet-single` and `hyper-parquet-partitioned`.

As a drive-by change, we also drop ::bigint casts from ClickBench Q29,
since those are not needed anymore, matching the queries used by other
systems as well.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@caetanosauer
caetanosauer force-pushed the hyper-parquet-persistent-external-plancache branch from f5e8c1e to c44a0dc Compare July 13, 2026 10:54
@caetanosauer

Copy link
Copy Markdown
Contributor Author

@rschu1ze No worries, thanks for the quick reply. Conflicts resolved now

@thevar1able thevar1able self-assigned this Jul 15, 2026
@thevar1able

thevar1able commented Jul 17, 2026

Copy link
Copy Markdown
Member

Shouldn't the files under hyper-parquet/results/20260630 be also moved to hyper-parquet-partitioned/results/20260630?

The hyper-parquet -> hyper-parquet-partitioned rename left the latest
20260630 result batch behind. Move it over and update the system name
to "Salesforce Hyper (Parquet, partitioned)" to match the rest of the
lane, removing the now-empty hyper-parquet folder entirely.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@caetanosauer

Copy link
Copy Markdown
Contributor Author

@thevar1able Thanks for catching this! The original commit was prepared just before the June 30 results came in. I fixed the issue now.

@thevar1able
thevar1able merged commit 40b4c79 into ClickHouse:main Jul 17, 2026
1 check passed
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