From d87e23dda13321a9dca1614b8e3a20e7fda124fa Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Thu, 18 Mar 2021 18:45:53 +0530 Subject: [PATCH 01/15] HBASE-25651: NORMALIZER_TARGET_REGION_SIZE needs a unit in its name --- .../apache/hadoop/hbase/client/TableDescriptorBuilder.java | 4 ++-- hbase-shell/src/main/ruby/hbase/admin.rb | 2 +- hbase-shell/src/main/ruby/shell/commands/alter.rb | 2 +- hbase-shell/src/test/ruby/hbase/admin_test.rb | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index 1c1cbaa8723d..1d558100f234 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -172,9 +172,9 @@ public class TableDescriptorBuilder { new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_COUNT)); @InterfaceAudience.Private - public static final String NORMALIZER_TARGET_REGION_SIZE = "NORMALIZER_TARGET_REGION_SIZE"; + public static final String NORMALIZER_TARGET_REGION_SIZE_MB = "NORMALIZER_TARGET_REGION_SIZE_MB"; private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = - new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); + new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); /** * Default durability for HTD is USE_DEFAULT, which defaults to HBase-global diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index a546605c621c..9e1d419366f1 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -1492,7 +1492,7 @@ def update_tdb_from_arg(tdb, arg) tdb.setMergeEnabled(JBoolean.valueOf(arg.delete(TableDescriptorBuilder::MERGE_ENABLED))) if arg.include?(TableDescriptorBuilder::MERGE_ENABLED) tdb.setNormalizationEnabled(JBoolean.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZATION_ENABLED))) if arg.include?(TableDescriptorBuilder::NORMALIZATION_ENABLED) tdb.setNormalizerTargetRegionCount(JInteger.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT) - tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE) + tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB) tdb.setMemStoreFlushSize(arg.delete(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE)) if arg.include?(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE) tdb.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf(arg.delete(TableDescriptorBuilder::DURABILITY))) if arg.include?(TableDescriptorBuilder::DURABILITY) tdb.setPriority(JInteger.valueOf(arg.delete(TableDescriptorBuilder::PRIORITY))) if arg.include?(TableDescriptorBuilder::PRIORITY) diff --git a/hbase-shell/src/main/ruby/shell/commands/alter.rb b/hbase-shell/src/main/ruby/shell/commands/alter.rb index 22e6e42e69c3..b06ada00248e 100644 --- a/hbase-shell/src/main/ruby/shell/commands/alter.rb +++ b/hbase-shell/src/main/ruby/shell/commands/alter.rb @@ -48,7 +48,7 @@ def help You can also change table-scope attributes like MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, NORMALIZATION_ENABLED, NORMALIZER_TARGET_REGION_COUNT, -NORMALIZER_TARGET_REGION_SIZE(MB), DURABILITY, etc. These can be put at the end; +NORMALIZER_TARGET_REGION_SIZE_MB, DURABILITY, etc. These can be put at the end; for example, to change the max size of a region to 128MB, do: hbase> alter 't1', MAX_FILESIZE => '134217728' diff --git a/hbase-shell/src/test/ruby/hbase/admin_test.rb b/hbase-shell/src/test/ruby/hbase/admin_test.rb index 309624ae1808..e00338f6758e 100644 --- a/hbase-shell/src/test/ruby/hbase/admin_test.rb +++ b/hbase-shell/src/test/ruby/hbase/admin_test.rb @@ -920,7 +920,7 @@ def teardown define_test 'alter should be able to set the TargetRegionSize and TargetRegionCount' do command(:alter, @test_name, 'NORMALIZER_TARGET_REGION_COUNT' => 156) assert_match(/156/, admin.describe(@test_name)) - command(:alter, @test_name, 'NORMALIZER_TARGET_REGION_SIZE' => 234) + command(:alter, @test_name, 'NORMALIZER_TARGET_REGION_SIZE_MB' => 234) assert_match(/234/, admin.describe(@test_name)) end From ff6155403b566fc28cd7ee343533948296de068b Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Wed, 24 Mar 2021 13:55:46 +0530 Subject: [PATCH 02/15] Keep support for backward compatibility --- .../hbase/client/TableDescriptorBuilder.java | 22 +++++++++++++++---- hbase-shell/src/main/ruby/hbase/admin.rb | 2 ++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index 1d558100f234..9e4b8838b8f7 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -173,9 +173,13 @@ public class TableDescriptorBuilder { @InterfaceAudience.Private public static final String NORMALIZER_TARGET_REGION_SIZE_MB = "NORMALIZER_TARGET_REGION_SIZE_MB"; + private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY_MB = + new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); + // Keeping backward compatability with HBASE-25651 change. Can be removed in later version + @InterfaceAudience.Private + public static final String NORMALIZER_TARGET_REGION_SIZE = "NORMALIZER_TARGET_REGION_SIZE"; private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = - new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); - + new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); /** * Default durability for HTD is USE_DEFAULT, which defaults to HBase-global * default value @@ -884,7 +888,12 @@ public int getNormalizerTargetRegionCount() { */ @Override public long getNormalizerTargetRegionSize() { - return getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)); + if (values.containsKey(NORMALIZER_TARGET_REGION_SIZE_KEY)) { + return getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)); + } + else { + return getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY_MB, Long::valueOf, Long.valueOf(-1)); + } } /** @@ -912,7 +921,12 @@ public ModifyableTableDescriptor setNormalizerTargetRegionCount(final int region * @return the modifyable TD */ public ModifyableTableDescriptor setNormalizerTargetRegionSize(final long regionSize) { - return setValue(NORMALIZER_TARGET_REGION_SIZE_KEY, Long.toString(regionSize)); + if (values.containsKey(NORMALIZER_TARGET_REGION_SIZE_KEY)) { + return setValue(NORMALIZER_TARGET_REGION_SIZE_KEY, Long.toString(regionSize)); + } + else { + return setValue(NORMALIZER_TARGET_REGION_SIZE_KEY_MB, Long.toString(regionSize)); + } } /** diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index 9e1d419366f1..7bfacad61e83 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -1492,6 +1492,8 @@ def update_tdb_from_arg(tdb, arg) tdb.setMergeEnabled(JBoolean.valueOf(arg.delete(TableDescriptorBuilder::MERGE_ENABLED))) if arg.include?(TableDescriptorBuilder::MERGE_ENABLED) tdb.setNormalizationEnabled(JBoolean.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZATION_ENABLED))) if arg.include?(TableDescriptorBuilder::NORMALIZATION_ENABLED) tdb.setNormalizerTargetRegionCount(JInteger.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT) + // Keeping backward compatability for NORMALIZER_TARGET_REGION_SIZE with HBASE-25651 change. Can be removed in later version + tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE) tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB) tdb.setMemStoreFlushSize(arg.delete(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE)) if arg.include?(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE) tdb.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf(arg.delete(TableDescriptorBuilder::DURABILITY))) if arg.include?(TableDescriptorBuilder::DURABILITY) From 5fd9382e7595f62142f92e9c259bc40ff539df36 Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Wed, 24 Mar 2021 17:10:26 +0530 Subject: [PATCH 03/15] build fix --- .../apache/hadoop/hbase/client/TableDescriptorBuilder.java | 4 ++-- hbase-shell/src/main/ruby/hbase/admin.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index 9e4b8838b8f7..161375a4f047 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -174,12 +174,12 @@ public class TableDescriptorBuilder { @InterfaceAudience.Private public static final String NORMALIZER_TARGET_REGION_SIZE_MB = "NORMALIZER_TARGET_REGION_SIZE_MB"; private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY_MB = - new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); + new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); // Keeping backward compatability with HBASE-25651 change. Can be removed in later version @InterfaceAudience.Private public static final String NORMALIZER_TARGET_REGION_SIZE = "NORMALIZER_TARGET_REGION_SIZE"; private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = - new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); + new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); /** * Default durability for HTD is USE_DEFAULT, which defaults to HBase-global * default value diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index 7bfacad61e83..672aa6e8a65a 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -1492,7 +1492,7 @@ def update_tdb_from_arg(tdb, arg) tdb.setMergeEnabled(JBoolean.valueOf(arg.delete(TableDescriptorBuilder::MERGE_ENABLED))) if arg.include?(TableDescriptorBuilder::MERGE_ENABLED) tdb.setNormalizationEnabled(JBoolean.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZATION_ENABLED))) if arg.include?(TableDescriptorBuilder::NORMALIZATION_ENABLED) tdb.setNormalizerTargetRegionCount(JInteger.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT) - // Keeping backward compatability for NORMALIZER_TARGET_REGION_SIZE with HBASE-25651 change. Can be removed in later version + # Keeping backward compatability for NORMALIZER_TARGET_REGION_SIZE with HBASE-25651 change. Can be removed in later version tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE) tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB) tdb.setMemStoreFlushSize(arg.delete(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE)) if arg.include?(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE) From e70920043df114ef011ac63441362c9162f8a7e1 Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Wed, 24 Mar 2021 17:12:07 +0530 Subject: [PATCH 04/15] indentation fix --- .../apache/hadoop/hbase/client/TableDescriptorBuilder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index 161375a4f047..de417d534d5c 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -174,12 +174,12 @@ public class TableDescriptorBuilder { @InterfaceAudience.Private public static final String NORMALIZER_TARGET_REGION_SIZE_MB = "NORMALIZER_TARGET_REGION_SIZE_MB"; private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY_MB = - new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); + new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); // Keeping backward compatability with HBASE-25651 change. Can be removed in later version @InterfaceAudience.Private public static final String NORMALIZER_TARGET_REGION_SIZE = "NORMALIZER_TARGET_REGION_SIZE"; private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = - new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); + new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); /** * Default durability for HTD is USE_DEFAULT, which defaults to HBase-global * default value From 3f7a430ffc08af78527c9af73a7d0c061df62df0 Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Wed, 24 Mar 2021 17:13:14 +0530 Subject: [PATCH 05/15] indentation fix --- .../org/apache/hadoop/hbase/client/TableDescriptorBuilder.java | 1 + 1 file changed, 1 insertion(+) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index de417d534d5c..ce710e907056 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -180,6 +180,7 @@ public class TableDescriptorBuilder { public static final String NORMALIZER_TARGET_REGION_SIZE = "NORMALIZER_TARGET_REGION_SIZE"; private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); + /** * Default durability for HTD is USE_DEFAULT, which defaults to HBase-global * default value From a41b01f21d5981e7ff32bea64f1d004b6809b5ac Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Wed, 24 Mar 2021 17:22:58 +0530 Subject: [PATCH 06/15] always read/write NORMALIZER_TARGET_REGION_SIZE_KEY --- .../hbase/client/TableDescriptorBuilder.java | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index ce710e907056..dd64e0b9f368 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -173,13 +173,11 @@ public class TableDescriptorBuilder { @InterfaceAudience.Private public static final String NORMALIZER_TARGET_REGION_SIZE_MB = "NORMALIZER_TARGET_REGION_SIZE_MB"; - private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY_MB = + private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); // Keeping backward compatability with HBASE-25651 change. Can be removed in later version @InterfaceAudience.Private public static final String NORMALIZER_TARGET_REGION_SIZE = "NORMALIZER_TARGET_REGION_SIZE"; - private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = - new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); /** * Default durability for HTD is USE_DEFAULT, which defaults to HBase-global @@ -889,12 +887,7 @@ public int getNormalizerTargetRegionCount() { */ @Override public long getNormalizerTargetRegionSize() { - if (values.containsKey(NORMALIZER_TARGET_REGION_SIZE_KEY)) { - return getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)); - } - else { - return getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY_MB, Long::valueOf, Long.valueOf(-1)); - } + return getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)); } /** @@ -922,12 +915,7 @@ public ModifyableTableDescriptor setNormalizerTargetRegionCount(final int region * @return the modifyable TD */ public ModifyableTableDescriptor setNormalizerTargetRegionSize(final long regionSize) { - if (values.containsKey(NORMALIZER_TARGET_REGION_SIZE_KEY)) { return setValue(NORMALIZER_TARGET_REGION_SIZE_KEY, Long.toString(regionSize)); - } - else { - return setValue(NORMALIZER_TARGET_REGION_SIZE_KEY_MB, Long.toString(regionSize)); - } } /** From 51f0d507aaa3f29f1666f5ecc62ff2b7bf8bff40 Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Wed, 24 Mar 2021 17:24:58 +0530 Subject: [PATCH 07/15] indetation --- .../org/apache/hadoop/hbase/client/TableDescriptorBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index dd64e0b9f368..fa9544d20d31 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -915,7 +915,7 @@ public ModifyableTableDescriptor setNormalizerTargetRegionCount(final int region * @return the modifyable TD */ public ModifyableTableDescriptor setNormalizerTargetRegionSize(final long regionSize) { - return setValue(NORMALIZER_TARGET_REGION_SIZE_KEY, Long.toString(regionSize)); + return setValue(NORMALIZER_TARGET_REGION_SIZE_KEY, Long.toString(regionSize)); } /** From 9ba695df5f66a0dedafe190d9708376e6b1e657a Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Wed, 24 Mar 2021 17:52:40 +0530 Subject: [PATCH 08/15] TODO --- .../org/apache/hadoop/hbase/client/TableDescriptorBuilder.java | 2 +- hbase-shell/src/main/ruby/hbase/admin.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index fa9544d20d31..804c49ec92a7 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -175,7 +175,7 @@ public class TableDescriptorBuilder { public static final String NORMALIZER_TARGET_REGION_SIZE_MB = "NORMALIZER_TARGET_REGION_SIZE_MB"; private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); - // Keeping backward compatability with HBASE-25651 change. Can be removed in later version + // TODO: Keeping backward compatability with HBASE-25651 change. Can be removed in later version @InterfaceAudience.Private public static final String NORMALIZER_TARGET_REGION_SIZE = "NORMALIZER_TARGET_REGION_SIZE"; diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index 672aa6e8a65a..1202ad9ebb4a 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -1492,7 +1492,7 @@ def update_tdb_from_arg(tdb, arg) tdb.setMergeEnabled(JBoolean.valueOf(arg.delete(TableDescriptorBuilder::MERGE_ENABLED))) if arg.include?(TableDescriptorBuilder::MERGE_ENABLED) tdb.setNormalizationEnabled(JBoolean.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZATION_ENABLED))) if arg.include?(TableDescriptorBuilder::NORMALIZATION_ENABLED) tdb.setNormalizerTargetRegionCount(JInteger.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT) - # Keeping backward compatability for NORMALIZER_TARGET_REGION_SIZE with HBASE-25651 change. Can be removed in later version + # TODO: Keeping backward compatability for NORMALIZER_TARGET_REGION_SIZE with HBASE-25651 change. Can be removed in later version tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE) tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB) tdb.setMemStoreFlushSize(arg.delete(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE)) if arg.include?(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE) From 96a8f275f27b361918d5188b44f7684b70c5967e Mon Sep 17 00:00:00 2001 From: Rahul Kumar Date: Thu, 13 May 2021 15:52:35 +0530 Subject: [PATCH 09/15] Address review comments --- .../hadoop/hbase/client/TableDescriptorBuilder.java | 1 + hbase-shell/src/main/ruby/hbase/admin.rb | 5 ++++- hbase-shell/src/test/ruby/hbase/admin_test.rb | 9 ++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index 804c49ec92a7..5c32e237e664 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -177,6 +177,7 @@ public class TableDescriptorBuilder { new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); // TODO: Keeping backward compatability with HBASE-25651 change. Can be removed in later version @InterfaceAudience.Private + @Deprecated public static final String NORMALIZER_TARGET_REGION_SIZE = "NORMALIZER_TARGET_REGION_SIZE"; /** diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index 1202ad9ebb4a..fb06570b2b2c 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -1493,7 +1493,10 @@ def update_tdb_from_arg(tdb, arg) tdb.setNormalizationEnabled(JBoolean.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZATION_ENABLED))) if arg.include?(TableDescriptorBuilder::NORMALIZATION_ENABLED) tdb.setNormalizerTargetRegionCount(JInteger.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT) # TODO: Keeping backward compatability for NORMALIZER_TARGET_REGION_SIZE with HBASE-25651 change. Can be removed in later version - tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE) + if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE) + puts 'Use of NORMALIZER_TARGET_REGION_SIZE has been deprecated and will be removed in future version, please use NORMALIZER_TARGET_REGION_SIZE_MB instead' + tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE))) + end tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB) tdb.setMemStoreFlushSize(arg.delete(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE)) if arg.include?(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE) tdb.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf(arg.delete(TableDescriptorBuilder::DURABILITY))) if arg.include?(TableDescriptorBuilder::DURABILITY) diff --git a/hbase-shell/src/test/ruby/hbase/admin_test.rb b/hbase-shell/src/test/ruby/hbase/admin_test.rb index e00338f6758e..9e7096da9037 100644 --- a/hbase-shell/src/test/ruby/hbase/admin_test.rb +++ b/hbase-shell/src/test/ruby/hbase/admin_test.rb @@ -917,13 +917,20 @@ def teardown assert_match(/12345678/, admin.describe(@test_name)) end - define_test 'alter should be able to set the TargetRegionSize and TargetRegionCount' do + define_test 'alter should be able to set the TargetRegionSizeMB and TargetRegionCount' do command(:alter, @test_name, 'NORMALIZER_TARGET_REGION_COUNT' => 156) assert_match(/156/, admin.describe(@test_name)) command(:alter, @test_name, 'NORMALIZER_TARGET_REGION_SIZE_MB' => 234) assert_match(/234/, admin.describe(@test_name)) end + define_test 'alter should be able to set the TargetRegionSize and TargetRegionCount' do + command(:alter, @test_name, 'NORMALIZER_TARGET_REGION_COUNT' => 156) + assert_match(/156/, admin.describe(@test_name)) + command(:alter, @test_name, 'NORMALIZER_TARGET_REGION_SIZE' => 234) + assert_match(/234/, admin.describe(@test_name)) + end + define_test 'alter should support shortcut DELETE alter specs' do assert_equal(['x:', 'y:'], table(@test_name).get_all_columns.sort) command(:alter, @test_name, 'delete' => 'y') From b7f8b29daef105a4ec75088382d2c138e0711ce9 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Date: Sat, 22 May 2021 13:55:32 +0530 Subject: [PATCH 10/15] backward compatibility. redirect to stderr --- .../hadoop/hbase/client/TableDescriptorBuilder.java | 10 +++++++--- hbase-shell/src/main/ruby/hbase/admin.rb | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index 5c32e237e664..b2a83d458732 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -173,12 +173,15 @@ public class TableDescriptorBuilder { @InterfaceAudience.Private public static final String NORMALIZER_TARGET_REGION_SIZE_MB = "NORMALIZER_TARGET_REGION_SIZE_MB"; - private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = + private static final Bytes NORMALIZER_TARGET_REGION_SIZE_MB_KEY = new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE_MB)); // TODO: Keeping backward compatability with HBASE-25651 change. Can be removed in later version @InterfaceAudience.Private @Deprecated public static final String NORMALIZER_TARGET_REGION_SIZE = "NORMALIZER_TARGET_REGION_SIZE"; + @Deprecated + private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = + new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); /** * Default durability for HTD is USE_DEFAULT, which defaults to HBase-global @@ -888,7 +891,8 @@ public int getNormalizerTargetRegionCount() { */ @Override public long getNormalizerTargetRegionSize() { - return getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)); + long target_region_size = getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)); + return target_region_size == Long.valueOf(-1) ? getOrDefault(NORMALIZER_TARGET_REGION_SIZE_MB_KEY, Long::valueOf, Long.valueOf(-1)) : target_region_size; } /** @@ -916,7 +920,7 @@ public ModifyableTableDescriptor setNormalizerTargetRegionCount(final int region * @return the modifyable TD */ public ModifyableTableDescriptor setNormalizerTargetRegionSize(final long regionSize) { - return setValue(NORMALIZER_TARGET_REGION_SIZE_KEY, Long.toString(regionSize)); + return setValue(NORMALIZER_TARGET_REGION_SIZE_MB_KEY, Long.toString(regionSize)); } /** diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index fb06570b2b2c..840f916cd91a 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -1494,7 +1494,7 @@ def update_tdb_from_arg(tdb, arg) tdb.setNormalizerTargetRegionCount(JInteger.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_COUNT) # TODO: Keeping backward compatability for NORMALIZER_TARGET_REGION_SIZE with HBASE-25651 change. Can be removed in later version if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE) - puts 'Use of NORMALIZER_TARGET_REGION_SIZE has been deprecated and will be removed in future version, please use NORMALIZER_TARGET_REGION_SIZE_MB instead' + warn 'Use of NORMALIZER_TARGET_REGION_SIZE has been deprecated and will be removed in future version, please use NORMALIZER_TARGET_REGION_SIZE_MB instead' tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE))) end tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB) From 0f2c0509a875e1eae4bb4c388fce8df17db985b4 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Date: Sat, 22 May 2021 14:42:10 +0530 Subject: [PATCH 11/15] indent --- .../org/apache/hadoop/hbase/client/TableDescriptorBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index b2a83d458732..3b2dadb715f0 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -181,7 +181,7 @@ public class TableDescriptorBuilder { public static final String NORMALIZER_TARGET_REGION_SIZE = "NORMALIZER_TARGET_REGION_SIZE"; @Deprecated private static final Bytes NORMALIZER_TARGET_REGION_SIZE_KEY = - new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); + new Bytes(Bytes.toBytes(NORMALIZER_TARGET_REGION_SIZE)); /** * Default durability for HTD is USE_DEFAULT, which defaults to HBase-global From 0a2f9db056594d79e54e6e3c5dce497c467ee2da Mon Sep 17 00:00:00 2001 From: Rahul Kumar Date: Mon, 24 May 2021 17:20:50 +0530 Subject: [PATCH 12/15] Get NORMALIZER_TARGET_REGION_SIZE_MB_KEY first --- .../apache/hadoop/hbase/client/TableDescriptorBuilder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index 3b2dadb715f0..e583605b4b78 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -891,8 +891,8 @@ public int getNormalizerTargetRegionCount() { */ @Override public long getNormalizerTargetRegionSize() { - long target_region_size = getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)); - return target_region_size == Long.valueOf(-1) ? getOrDefault(NORMALIZER_TARGET_REGION_SIZE_MB_KEY, Long::valueOf, Long.valueOf(-1)) : target_region_size; + long target_region_size = getOrDefault(NORMALIZER_TARGET_REGION_SIZE_MB_KEY, Long::valueOf, Long.valueOf(-1)); + return target_region_size == Long.valueOf(-1) ? getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)) : target_region_size; } /** From 72c062f62c147850971503cd567cb569a76cc087 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Date: Thu, 27 May 2021 20:39:06 +0530 Subject: [PATCH 13/15] resolved line length --- .../apache/hadoop/hbase/client/TableDescriptorBuilder.java | 6 ++++-- hbase-shell/src/main/ruby/hbase/admin.rb | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index e583605b4b78..87085793ea0a 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -891,8 +891,10 @@ public int getNormalizerTargetRegionCount() { */ @Override public long getNormalizerTargetRegionSize() { - long target_region_size = getOrDefault(NORMALIZER_TARGET_REGION_SIZE_MB_KEY, Long::valueOf, Long.valueOf(-1)); - return target_region_size == Long.valueOf(-1) ? getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)) : target_region_size; + long target_region_size = + getOrDefault(NORMALIZER_TARGET_REGION_SIZE_MB_KEY, Long::valueOf, Long.valueOf(-1)); + return target_region_size == Long.valueOf(-1) ? + getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)) : target_region_size; } /** diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index 840f916cd91a..d76ab22872f9 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -1497,7 +1497,8 @@ def update_tdb_from_arg(tdb, arg) warn 'Use of NORMALIZER_TARGET_REGION_SIZE has been deprecated and will be removed in future version, please use NORMALIZER_TARGET_REGION_SIZE_MB instead' tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE))) end - tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB))) if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB) + tdb.setNormalizerTargetRegionSize(JLong.valueOf(arg.delete(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB))) \ + if arg.include?(TableDescriptorBuilder::NORMALIZER_TARGET_REGION_SIZE_MB) tdb.setMemStoreFlushSize(arg.delete(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE)) if arg.include?(TableDescriptorBuilder::MEMSTORE_FLUSHSIZE) tdb.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf(arg.delete(TableDescriptorBuilder::DURABILITY))) if arg.include?(TableDescriptorBuilder::DURABILITY) tdb.setPriority(JInteger.valueOf(arg.delete(TableDescriptorBuilder::PRIORITY))) if arg.include?(TableDescriptorBuilder::PRIORITY) From 48f7ab9cc542d920a2db18517be42ecaedb53bd7 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Date: Thu, 27 May 2021 21:48:40 +0530 Subject: [PATCH 14/15] truncate lines --- .../apache/hadoop/hbase/client/TableDescriptorBuilder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index 87085793ea0a..0eb108b9224a 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -893,8 +893,8 @@ public int getNormalizerTargetRegionCount() { public long getNormalizerTargetRegionSize() { long target_region_size = getOrDefault(NORMALIZER_TARGET_REGION_SIZE_MB_KEY, Long::valueOf, Long.valueOf(-1)); - return target_region_size == Long.valueOf(-1) ? - getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)) : target_region_size; + return target_region_size == Long.valueOf(-1) ? getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, + Long::valueOf, Long.valueOf(-1)) : target_region_size; } /** From 1b5f87e2aef070d73c4e5314ca756a1984dc1d31 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Date: Thu, 27 May 2021 21:56:01 +0530 Subject: [PATCH 15/15] 100 chars --- .../apache/hadoop/hbase/client/TableDescriptorBuilder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java index 0eb108b9224a..d306fdc55210 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java @@ -893,8 +893,8 @@ public int getNormalizerTargetRegionCount() { public long getNormalizerTargetRegionSize() { long target_region_size = getOrDefault(NORMALIZER_TARGET_REGION_SIZE_MB_KEY, Long::valueOf, Long.valueOf(-1)); - return target_region_size == Long.valueOf(-1) ? getOrDefault(NORMALIZER_TARGET_REGION_SIZE_KEY, - Long::valueOf, Long.valueOf(-1)) : target_region_size; + return target_region_size == Long.valueOf(-1) ? getOrDefault( + NORMALIZER_TARGET_REGION_SIZE_KEY, Long::valueOf, Long.valueOf(-1)) : target_region_size; } /**