This is an automated email from the ASF dual-hosted git repository.

lzljs3620320 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 bc6eaac84a [core] Don't use snapshotManager.latestSnapshotOfUser in 
writers to prevent flooding catalog (#5707)
bc6eaac84a is described below

commit bc6eaac84af9cc5d4ab1ff0ea3d82cb6aaa6c25f
Author: tsreaper <[email protected]>
AuthorDate: Sat Jun 7 09:56:15 2025 +0800

    [core] Don't use snapshotManager.latestSnapshotOfUser in writers to prevent 
flooding catalog (#5707)
---
 .../main/java/org/apache/paimon/index/HashBucketAssigner.java    | 2 +-
 .../java/org/apache/paimon/operation/AbstractFileStoreWrite.java | 2 +-
 .../src/main/java/org/apache/paimon/utils/SnapshotManager.java   | 9 ++++++++-
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git 
a/paimon-core/src/main/java/org/apache/paimon/index/HashBucketAssigner.java 
b/paimon-core/src/main/java/org/apache/paimon/index/HashBucketAssigner.java
index ab3d125156..93e05d6c94 100644
--- a/paimon-core/src/main/java/org/apache/paimon/index/HashBucketAssigner.java
+++ b/paimon-core/src/main/java/org/apache/paimon/index/HashBucketAssigner.java
@@ -118,7 +118,7 @@ public class HashBucketAssigner implements BucketAssigner {
         } else {
             latestCommittedIdentifier =
                     snapshotManager
-                            .latestSnapshotOfUser(commitUser)
+                            .latestSnapshotOfUserFromFilesystem(commitUser)
                             .map(Snapshot::commitIdentifier)
                             .orElse(Long.MIN_VALUE);
         }
diff --git 
a/paimon-core/src/main/java/org/apache/paimon/operation/AbstractFileStoreWrite.java
 
b/paimon-core/src/main/java/org/apache/paimon/operation/AbstractFileStoreWrite.java
index 3dd82e21c5..053d3aa0c8 100644
--- 
a/paimon-core/src/main/java/org/apache/paimon/operation/AbstractFileStoreWrite.java
+++ 
b/paimon-core/src/main/java/org/apache/paimon/operation/AbstractFileStoreWrite.java
@@ -280,7 +280,7 @@ public abstract class AbstractFileStoreWrite<T> implements 
FileStoreWrite<T> {
                     String commitUser, SnapshotManager snapshotManager) {
         long latestCommittedIdentifier =
                 snapshotManager
-                        .latestSnapshotOfUser(commitUser)
+                        .latestSnapshotOfUserFromFilesystem(commitUser)
                         .map(Snapshot::commitIdentifier)
                         .orElse(Long.MIN_VALUE);
         if (LOG.isDebugEnabled()) {
diff --git 
a/paimon-core/src/main/java/org/apache/paimon/utils/SnapshotManager.java 
b/paimon-core/src/main/java/org/apache/paimon/utils/SnapshotManager.java
index 1356e090fe..bc28226119 100644
--- a/paimon-core/src/main/java/org/apache/paimon/utils/SnapshotManager.java
+++ b/paimon-core/src/main/java/org/apache/paimon/utils/SnapshotManager.java
@@ -578,7 +578,14 @@ public class SnapshotManager implements Serializable {
     }
 
     public Optional<Snapshot> latestSnapshotOfUser(String user) {
-        Long latestId = latestSnapshotId();
+        return latestSnapshotOfUser(user, latestSnapshotId());
+    }
+
+    public Optional<Snapshot> latestSnapshotOfUserFromFilesystem(String user) {
+        return latestSnapshotOfUser(user, latestSnapshotIdFromFileSystem());
+    }
+
+    private Optional<Snapshot> latestSnapshotOfUser(String user, Long 
latestId) {
         if (latestId == null) {
             return Optional.empty();
         }

Reply via email to