JingsongLi commented on PR #7715:
URL: https://github.com/apache/paimon/pull/7715#issuecomment-5058774871

   The current `early-abort` behavior, which lacks a manifest, only protects 
`main`: `LocalOrphanFilesClean` constructs `liveSnapshots` only for 
`DEFAULT_MAIN_BRANCH`, and Flink/Spark also use the same `liveOnMainBranch` 
gating.
   - However, the orphan cleaner’s `validBranches()` scans all active branches; 
since branches have independent snapshot directories, writes and snapshot 
expiration can also be performed via the branch table. When new snapshots are 
generated concurrently on branches and old snapshots are deleted due to 
expiration, stale-list/missing-manifest race conditions may also occur.
   - Because a branch’s `missingManifest` is `null`, a read failure is treated 
as an empty result, which may still cause data files referenced by active 
branches to be marked as orphans. Recommendation: **All active branch snapshots 
should adopt the same `missing-manifest` abort behavior as the main branch; 
tags can remain on a best-effort basis**, and additional regression tests for 
concurrent branch commits and expirations should be implemented.


-- 
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