Skip to content

[core] Commit independent Data Evolution compaction tasks on conflict - #10882

Draft
XiaoHongbo-Hope wants to merge 2 commits into
apache:masterfrom
XiaoHongbo-Hope:codex/compact-conflict-task-filter
Draft

XiaoHongbo-Hope wants to merge 2 commits into
apache:masterfrom
XiaoHongbo-Hope:codex/compact-conflict-task-filter

Conversation

@XiaoHongbo-Hope

Copy link
Copy Markdown
Contributor

Concurrent column updates can make one Data Evolution compaction task conflict and fail the entire batch. With data-evolution.compaction.discard-conflicting-tasks=true (default false), the commit drops each conflicting task's complete input deletions and output additions, rechecks conflicts, and commits independent tasks. If all tasks conflict, it records an empty Compact snapshot for commit deduplication. Skipped inputs remain live; unreferenced outputs use the existing orphan-file cleanup path.

This applies only to independent normal-data compaction tasks without index/changelog changes or row-ID validation baselines. Other conflicts retain the existing failure behavior.

Validation: 62 focused tests passed with standard Maven Checkstyle, Spotless, and Enforcer checks. Tests cover real compaction commits, concurrent updates, retries, shared inputs, row-ID reassignment, and exception serialization.

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.

1 participant