leaves12138 opened a new pull request, #8506:
URL: https://github.com/apache/paimon/pull/8506

   ### Purpose
   
   `DataEvolutionRowIdReassigner` can lose a commit race when a normal append 
commits a newer snapshot between planning and `replaceManifestList`. Previously 
the next reassignment invocation had to start the manifest read work from 
scratch.
   
   ### Changes
   
   - Retry `replaceManifestList` conflicts up to three times in the same 
reassignment call.
   - Reuse already deserialized data manifest and index manifest entries across 
retry attempts.
   - Recompute assignment from the latest snapshot and latest `nextRowId` on 
every retry to avoid row-id range overlap with concurrent appends.
   - Add a deterministic conflict test that appends before the first reassign 
commit and verifies the retry uses the latest `nextRowId`.
   
   ### Tests
   
   - `mvn -pl paimon-core spotless:apply`
   - `mvn -pl paimon-core -am -Pfast-build -DfailIfNoTests=false 
-DwildcardSuites=none 
-Dtest=DataEvolutionRowIdReassignerTest#testReassignRetriesWithLatestNextRowIdAfterConcurrentAppend
 test`
   - `mvn -pl paimon-core -am -DfailIfNoTests=false -DwildcardSuites=none 
-Dtest=DataEvolutionRowIdReassignerTest test`
   - `git diff --check`


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