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 a9395f1ae6 [core] Use latestSnapshotIdFromFileSystem in
NextSnapshotFetcher
a9395f1ae6 is described below
commit a9395f1ae6746d55202531e8f900911d1427a6af
Author: JingsongLi <[email protected]>
AuthorDate: Tue Jul 22 17:12:39 2025 +0800
[core] Use latestSnapshotIdFromFileSystem in NextSnapshotFetcher
---
.../org/apache/paimon/utils/NextSnapshotFetcher.java | 18 +++++-------------
1 file changed, 5 insertions(+), 13 deletions(-)
diff --git
a/paimon-core/src/main/java/org/apache/paimon/utils/NextSnapshotFetcher.java
b/paimon-core/src/main/java/org/apache/paimon/utils/NextSnapshotFetcher.java
index 772942e4a4..addc24707d 100644
--- a/paimon-core/src/main/java/org/apache/paimon/utils/NextSnapshotFetcher.java
+++ b/paimon-core/src/main/java/org/apache/paimon/utils/NextSnapshotFetcher.java
@@ -26,8 +26,6 @@ import org.slf4j.LoggerFactory;
import javax.annotation.Nullable;
-import java.io.FileNotFoundException;
-
/** Fetcher for getting the next snapshot by snapshot id. */
public class NextSnapshotFetcher {
@@ -48,27 +46,21 @@ public class NextSnapshotFetcher {
@Nullable
public Snapshot getNextSnapshot(long nextSnapshotId) {
- Snapshot latest = snapshotManager.latestSnapshot();
-
- if (latest != null && latest.id() == nextSnapshotId) {
- return latest;
- }
-
- try {
- return snapshotManager.tryGetSnapshot(nextSnapshotId);
- } catch (FileNotFoundException ignored) {
+ if (snapshotManager.snapshotExists(nextSnapshotId)) {
+ return snapshotManager.snapshot(nextSnapshotId);
}
Long earliestSnapshotId = snapshotManager.earliestSnapshotId();
+ Long latestSnapshotId =
snapshotManager.latestSnapshotIdFromFileSystem();
// No snapshot now
if (earliestSnapshotId == null || earliestSnapshotId <=
nextSnapshotId) {
if ((earliestSnapshotId == null && nextSnapshotId > 1)
- || (latest != null && nextSnapshotId > latest.id() + 1)) {
+ || (latestSnapshotId != null && nextSnapshotId >
latestSnapshotId + 1)) {
throw new OutOfRangeException(
String.format(
"The next expected snapshot is too big! Most
possible cause might be the table had been recreated."
+ "The next snapshot id is %d, while
the latest snapshot id is %s",
- nextSnapshotId, latest == null ? "none" :
latest.id()));
+ nextSnapshotId, latestSnapshotId));
}
LOG.debug(