From e98e8a2222e257a43df5cd192f765951caf65b63 Mon Sep 17 00:00:00 2001 From: Joel Swiatek Date: Tue, 16 Nov 2021 13:44:59 -0800 Subject: [PATCH] HBASE-22458 Add UNSET_SNAPSHOT_PROP and fix TTL defaulting --- .../main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java | 2 +- .../src/main/java/org/apache/hadoop/hbase/HConstants.java | 3 +++ .../hadoop/hbase/snapshot/SnapshotDescriptionUtils.java | 5 +---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java index 5742918ec4..9d290f64a1 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java @@ -3717,7 +3717,7 @@ public class HBaseAdmin implements Admin { } private long getTtlFromSnapshotProps(Map snapshotProps) { - return MapUtils.getLongValue(snapshotProps, "TTL", -1); + return MapUtils.getLongValue(snapshotProps, "TTL", HConstants.UNSET_SNAPSHOT_PROP); } public void snapshot(final String snapshotName, diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java index b0682d227e..a028253074 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java @@ -1367,6 +1367,9 @@ public final class HConstants { // Default TTL - FOREVER public static final long DEFAULT_SNAPSHOT_TTL = 0; + // Unset property (not specified in user supplied props) + public static final long UNSET_SNAPSHOT_PROP = -1; + // User defined Default TTL config key public static final String DEFAULT_SNAPSHOT_TTL_CONFIG_KEY = "hbase.master.snapshot.ttl"; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java index 665fb5b148..0ee6fc788d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java @@ -125,9 +125,6 @@ public final class SnapshotDescriptionUtils { /** Default value if no start time is specified */ public static final long NO_SNAPSHOT_START_TIME_SPECIFIED = 0; - // Default value if no ttl is specified for Snapshot - private static final long NO_SNAPSHOT_TTL_SPECIFIED = 0; - public static final String MASTER_SNAPSHOT_TIMEOUT_MILLIS = "hbase.snapshot.master.timeout.millis"; /** By default, wait 300 seconds for a snapshot to complete */ @@ -320,7 +317,7 @@ public final class SnapshotDescriptionUtils { } long ttl = snapshot.getTtl(); // set default ttl(sec) if it is not set already or the value is out of the range - if (ttl == SnapshotDescriptionUtils.NO_SNAPSHOT_TTL_SPECIFIED || + if (ttl == HConstants.UNSET_SNAPSHOT_PROP || ttl > TimeUnit.MILLISECONDS.toSeconds(Long.MAX_VALUE)) { final long defaultSnapshotTtl = conf.getLong(HConstants.DEFAULT_SNAPSHOT_TTL_CONFIG_KEY, HConstants.DEFAULT_SNAPSHOT_TTL); -- 2.21.1 (Apple Git-122.3)