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();
}