This is an automated email from the ASF dual-hosted git repository.
yuzelin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new e1f8281865 [core] Fix performance issue in
FileStoreCommitImpl#filterCommitted (#7275)
e1f8281865 is described below
commit e1f82818659175aedabd689e41e29cb90f851e9d
Author: tsreaper <[email protected]>
AuthorDate: Thu Feb 12 16:57:29 2026 +0800
[core] Fix performance issue in FileStoreCommitImpl#filterCommitted (#7275)
---
.../paimon/operation/FileStoreCommitImpl.java | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git
a/paimon-core/src/main/java/org/apache/paimon/operation/FileStoreCommitImpl.java
b/paimon-core/src/main/java/org/apache/paimon/operation/FileStoreCommitImpl.java
index acca626205..9da657522e 100644
---
a/paimon-core/src/main/java/org/apache/paimon/operation/FileStoreCommitImpl.java
+++
b/paimon-core/src/main/java/org/apache/paimon/operation/FileStoreCommitImpl.java
@@ -255,15 +255,18 @@ public class FileStoreCommitImpl implements
FileStoreCommit {
"Committables must be sorted according to identifiers
before filtering. This is unexpected.");
}
- Optional<Snapshot> latestSnapshot =
- options.commitStrictModeLastSafeSnapshot()
- .map(
- id ->
- snapshotManager.latestSnapshotOfUser(
- commitUser,
-
snapshotManager.latestSnapshotId(),
- id + 1))
-
.orElse(snapshotManager.latestSnapshotOfUser(commitUser));
+ Optional<Long> optionalStrictSnapshot =
options.commitStrictModeLastSafeSnapshot();
+ Optional<Snapshot> latestSnapshot;
+ if (optionalStrictSnapshot.isPresent()) {
+ latestSnapshot =
+ snapshotManager.latestSnapshotOfUser(
+ commitUser,
+ snapshotManager.latestSnapshotId(),
+ optionalStrictSnapshot.get() + 1);
+ } else {
+ latestSnapshot = snapshotManager.latestSnapshotOfUser(commitUser);
+ }
+
if (latestSnapshot.isPresent()) {
List<ManifestCommittable> result = new ArrayList<>();
for (ManifestCommittable committable : committables) {