XiaoHongbo-Hope opened a new pull request, #9040: URL: https://github.com/apache/paimon/pull/9040
### Purpose PyPaimon currently reruns manifest merge after every deterministic atomic commit failure. On tables with many manifests, a retry can therefore repeat the same manifest reads and rewrites. This aligns PyPaimon with the Java retry behavior introduced in #8229. ### Changes - Retain the manifest merge input and output after an atomic commit returns `false`. - Reuse the previous output when its input remains a contiguous part of the latest manifest list, preserving concurrently added manifests. - Skip manifest merge on retries when the previous result cannot be reused safely. - Compare deserialized manifest metadata by stable values instead of `BinaryRow` object identity. - Keep the existing incremental conflict-scan reuse and uncertain commit semantics unchanged. ### Tests - Contiguous replacement, ordering, duplicates, and empty-list behavior. - Reuse with unchanged and concurrently extended manifest lists. - Non-contiguous fallback without another merge. - Atomic commit exceptions do not retain merge results. - Multiple retries call the manifest merger only once and write the expected final base manifest list. - Existing conflict retry and table write tests. Validation: 74 tests passed, including `file_store_commit_test.py`, `overwrite_commit_conflict_test.py`, and `table_write_test.py`. Flake8 and `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]
