From 3375f2b77327261cf48ef548486957e7ddbfcfd2 Mon Sep 17 00:00:00 2001 From: Joel Swiatek Date: Mon, 15 Nov 2021 16:14:38 -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 | 5 +---- 3 files changed, 6 insertions(+), 5 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 bbc6a503a3..f5285d597a 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; @@ -98,7 +99,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 6464158569..95f9905cad 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 @@ -1541,6 +1541,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 c059792ca6..0190d711a8 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 @@ -128,9 +128,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 */ @@ -309,7 +306,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)