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]

Reply via email to