Plain merge tree partition exports - #2290
Conversation
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 240da8173c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| catch (...) | ||
| { | ||
| replicated_error = std::current_exception(); | ||
| tryLogCurrentException(getLogger("InterpreterKillQueryQuery"), | ||
| "KILL EXPORT PARTITION: could not read system.replicated_partition_exports (the WHERE may " | ||
| "reference columns that only exist for plain MergeTree); ignoring ReplicatedMergeTree tables"); |
There was a problem hiding this comment.
Propagate system-table read failures during KILL
If either system-table query fails for an operational reason such as a memory limit, timeout, or internal exception, this broad catch treats it like an engine-specific unknown column and continues with the other table. The command can therefore report successful results while silently leaving matching exports from the failed table running. Only suppress the specific predicate-resolution error that proves the filter belongs exclusively to the other table; propagate all other failures.
AGENTS.md reference: AGENTS.md:L153-L153
Useful? React with 👍 / 👎.
…ya-26.6/export-partition-plain-merge-tree
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c8d038d350
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…n-plain-merge-tree
…n-plain-merge-tree Keep the skip-policy commit-file short-circuit from antalya-26.6 together with lazy first-sink creation, and port the new skip-policy tests into the unified object-storage suite. Co-authored-by: Cursor <cursoragent@cursor.com>
…n-plain-merge-tree
|
|
||
| ### Pending mutations {#plain-merge-tree-pending-mutations} | ||
|
|
||
| The pending-mutation gate is more conservative than on a `Replicated*MergeTree`. A plain `MergeTree` does not scope its mutation snapshot by partition, so a mutation restricted with `IN PARTITION` still marks the parts of every other partition as having pending mutations, and exporting an unaffected partition is refused with `PENDING_MUTATIONS_NOT_ALLOWED`. The gate fails closed - it never exports data that a pending mutation would have changed - so the effect is that you may have to wait for an unrelated mutation to finish, or set `export_merge_tree_part_throw_on_pending_mutations` to `false`. |
There was a problem hiding this comment.
I should check ways around this later
| ### Commit info columns | ||
|
|
||
| These columns surface paths produced by the destination storage during commit, so it is possible to inspect what was written without consulting the destination directly: | ||
| These columns surface paths produced by the destination storage during commit, so it is possible to inspect what was written without consulting the destination directly. They are populated for `Replicated*MergeTree` sources only; a plain `MergeTree` does not persist the commit paths, so they stay empty there even after a successful commit. |
There was a problem hiding this comment.
This shall be implemented for plain merge tree as well
There was a problem hiding this comment.
Is this going to be covered in another PR?
There was a problem hiding this comment.
I plan to cover it in this pr unless it is too complex (I doubt it is).
For now I am reviewing my own code (AI code :D)
|
Iceberg export partition regression suite is fully passing on no/ice/glue catalogs with plain merge tree tables. I will wait for dev review and the CI run to do a final CI triage to confirm no PR caused failures. |
List of changes:
system.partition_exportstable that keeps track of both plain and replicated cases. The oldsystem.replicated_partition_exportsis aliased to this new one for backwards compatibility.Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Export partition on plain merge tree. Should close #1908
User facing & functional changes:
system.partition_exportstable that covers both the previousreplicated_partition_exportsand the new one for plain merge treeDocumentation entry for user-facing changes
...
CI/CD Options
Exclude tests:
Regression jobs to run: