From 185ecb87e53204a742648f9eee97d892bf3b46e9 Mon Sep 17 00:00:00 2001 From: tianliuliu <643422162@qq.com> Date: Mon, 21 Nov 2022 10:29:11 +0800 Subject: [PATCH] support through all day offPeak to cover all the usage scenario --- .../regionserver/compactions/OffPeakHours.java | 6 +++--- .../regionserver/compactions/TestOffPeakHours.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.java index 426514aacb95..277670a04b27 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.java @@ -46,7 +46,7 @@ public static OffPeakHours getInstance(Configuration conf) { /** * @param startHour inclusive - * @param endHour exclusive + * @param endHour inclusive */ public static OffPeakHours getInstance(int startHour, int endHour) { if (startHour == -1 && endHour == -1) { @@ -84,7 +84,7 @@ private static class OffPeakHoursImpl extends OffPeakHours { /** * @param startHour inclusive - * @param endHour exclusive + * @param endHour inclusive */ OffPeakHoursImpl(int startHour, int endHour) { this.startHour = startHour; @@ -99,7 +99,7 @@ public boolean isOffPeakHour() { @Override public boolean isOffPeakHour(int targetHour) { if (startHour <= endHour) { - return startHour <= targetHour && targetHour < endHour; + return startHour <= targetHour && targetHour <= endHour; } return targetHour < endHour || startHour <= targetHour; } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestOffPeakHours.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestOffPeakHours.java index 56534ed3a348..e3f579ba3471 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestOffPeakHours.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestOffPeakHours.java @@ -49,6 +49,8 @@ public static void setUpClass() { private int hourPlusOne; private int hourMinusOne; private int hourMinusTwo; + private int hourAllDayStart; + private int hourAllDayEnd; private Configuration conf; @Before @@ -57,6 +59,8 @@ public void setUp() { hourPlusOne = ((hourOfDay + 1) % 24); hourMinusOne = ((hourOfDay - 1 + 24) % 24); hourMinusTwo = ((hourOfDay - 2 + 24) % 24); + hourAllDayStart = 0; + hourAllDayEnd = 23; conf = testUtil.getConfiguration(); } @@ -82,4 +86,14 @@ public void testSetPeakHourOutsideCurrentSelection() { OffPeakHours target = OffPeakHours.getInstance(conf); assertFalse(target.isOffPeakHour(hourOfDay)); } + + @Test + public void testSetPeakHourAllDay() { + conf.setLong(CompactionConfiguration.HBASE_HSTORE_OFFPEAK_START_HOUR, hourAllDayStart); + conf.setLong(CompactionConfiguration.HBASE_HSTORE_OFFPEAK_END_HOUR, hourAllDayEnd); + OffPeakHours target = OffPeakHours.getInstance(conf); + assertTrue(target.isOffPeakHour(hourAllDayStart)); + assertTrue(target.isOffPeakHour(hourOfDay)); + assertTrue(target.isOffPeakHour(hourAllDayEnd)); + } }