discivigour opened a new pull request, #10564: URL: https://github.com/apache/paimon/pull/10564
### Purpose Concurrent compaction of a fixed-bucket table with deletion vectors can publish a result computed from stale DV state. When another writer replaces the bucket's DV index, the stale result can overwrite newer deletion marks even if the existing data-file conflict checks pass, making deleted rows visible again. Record the restored or previously prepared DV filename in each compact increment and validate it against the current snapshot through `ConflictDetection.checkConflicts` on every COMPACT commit attempt. Keep DV validation independent of data-file checks, preserve consecutive prepared results, and resolve uncertain successful commits before rechecking dependencies. Commit-message serialization v15 distinguishes a known-empty baseline from legacy messages without a recorded baseline. A DV conflict rejects the stale result and requires compaction to be recomputed from refreshed state. This change does not add automatic recomputation or repair existing duplicate records. ### Tests - 262 related tests passed on JDK 8 across `ClusteringTableTest`, `FileStoreCommitTest`, `ConflictDetectionTest`, `BucketedDvMaintainerTest`, `BucketedAppendFileStoreWriteTest`, `CommitMessageSerializerTest`, and `ManifestCommittableSerializerCompatibilityTest`. - Coverage includes concurrent DV replacement, CAS retries, uncertain successful commits, DV-only commits, missing and empty baselines, consecutive prepared results, writer checkpoint/restore, and serializer compatibility. - Standard Maven Checkstyle, Spotless, and Enforcer checks passed; `git diff --check` passed. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
