Skip to content

Refactor code to support concurrent SELECT queries in Iceberg#86062

Merged
divanik merged 76 commits intomasterfrom
divanik/support_concurrent_queries_to_iceberg_table_3
Sep 26, 2025
Merged

Refactor code to support concurrent SELECT queries in Iceberg#86062
divanik merged 76 commits intomasterfrom
divanik/support_concurrent_queries_to_iceberg_table_3

Conversation

@divanik
Copy link
Copy Markdown
Member

@divanik divanik commented Aug 22, 2025

Changelog category (leave one):

  • Improvement

Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md):

Iceberg table state is not stored in a storage object anymore. This should make Iceberg in ClickHouse usable with concurrent queries

@clickhouse-gh
Copy link
Copy Markdown
Contributor

clickhouse-gh bot commented Aug 22, 2025

Workflow [PR], commit [cb36b33]

Summary:

@kssenii kssenii self-assigned this Aug 22, 2025
@divanik divanik changed the title [[DRAFT]] Fix concurrent queries to Iceberg [[DRAFT]] Fix concurrent SELECT queries to Iceberg Aug 23, 2025
@clickhouse-gh clickhouse-gh bot added the pr-bugfix Pull request with bugfix, not backported by default label Aug 25, 2025
@divanik divanik force-pushed the divanik/support_concurrent_queries_to_iceberg_table_3 branch 2 times, most recently from 82dc20e to 914f93f Compare August 25, 2025 18:10
…k/support_concurrent_queries_to_iceberg_table_3
@divanik divanik force-pushed the divanik/support_concurrent_queries_to_iceberg_table_3 branch from 914f93f to d10eb59 Compare August 26, 2025 09:22
@divanik divanik added the no-fast-tests Drops preliminary CI jobs: Style, clang-tidy, Fast Test label Aug 26, 2025
@divanik divanik force-pushed the divanik/support_concurrent_queries_to_iceberg_table_3 branch from 4c546d3 to 2995b4e Compare August 27, 2025 14:17
@divanik divanik force-pushed the divanik/support_concurrent_queries_to_iceberg_table_3 branch 2 times, most recently from 380c964 to dc3bfbd Compare August 28, 2025 18:33
/// This will update metadata for table function which contains specific information about table
/// state (e.g. for Iceberg). It is done because select queries for table functions are executed
/// in a different way and clickhouse can execute without calling updateExternalDynamicMetadataIfExists.
if (!do_lazy_init && is_table_function && configuration->needsUpdateForSchemaConsistency())
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.

What if do_lazy_init == true? It currently is for cluster functions...

Copy link
Copy Markdown
Member Author

@divanik divanik Sep 23, 2025

Choose a reason for hiding this comment

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

Tests didn't break in a such scenario. Maybe we can add do_lazy_init = ... && !is_table_function and avoid this check here?

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.

It used to be so initially, but the behaviour was changed on purpose #83052 🤔

@divanik divanik added this pull request to the merge queue Sep 26, 2025
Merged via the queue into master with commit d8595d7 Sep 26, 2025
241 of 242 checks passed
@divanik divanik deleted the divanik/support_concurrent_queries_to_iceberg_table_3 branch September 26, 2025 11:23
@robot-ch-test-poll4 robot-ch-test-poll4 added the pr-synced-to-cloud The PR is synced to the cloud repo label Sep 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-improvement Pull request with some product improvements pr-synced-to-cloud The PR is synced to the cloud repo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants