From cf40e6ba97d5081d6d1ef403febbeab623972494 Mon Sep 17 00:00:00 2001 From: Joel Swiatek Date: Tue, 16 Nov 2021 13:34:58 -0800 Subject: [PATCH] HBASE-22458 Add UNSET_SNAPSHOT_PROP and fix TTL defaulting --- .../org/apache/hadoop/hbase/client/SnapshotDescription.java | 3 ++- .../src/main/java/org/apache/hadoop/hbase/HConstants.java | 3 +++ .../hadoop/hbase/snapshot/SnapshotDescriptionUtils.java | 6 +----- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/SnapshotDescription.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/SnapshotDescription.java index 154b99460f..0c51faacdf 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/SnapshotDescription.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/SnapshotDescription.java @@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.client; import java.util.Map; import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.TableName; import org.apache.yetus.audience.InterfaceAudience; @@ -143,7 +144,7 @@ public class SnapshotDescription { } private long getLongFromSnapshotProps(Map snapshotProps, String property) { - return MapUtils.getLongValue(snapshotProps, property, -1); + return MapUtils.getLongValue(snapshotProps, property, HConstants.UNSET_SNAPSHOT_PROP); } 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 e8f8e764ca..86b90d55b1 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 @@ -1624,6 +1624,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 c66991f856..abf8ea76d4 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 @@ -124,13 +124,9 @@ public final class SnapshotDescriptionUtils { */ public static final String SNAPSHOT_WORKING_DIR = "hbase.snapshot.working.dir"; - // snapshot operation values /** 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 */ @@ -325,7 +321,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)