You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by me...@apache.org on 2021/09/22 03:31:21 UTC

[hbase] branch branch-2.3 updated: HBASE-26270 Provide getConfiguration method for Region and Store interface (#3671)

This is an automated email from the ASF dual-hosted git repository.

meiyi pushed a commit to branch branch-2.3
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.3 by this push:
     new 7bde882  HBASE-26270 Provide getConfiguration method for Region and Store interface (#3671)
7bde882 is described below

commit 7bde882f8784a89cb91a509f6a07780c4df57f79
Author: meiyi <my...@gmail.com>
AuthorDate: Wed Sep 22 10:23:25 2021 +0800

    HBASE-26270 Provide getConfiguration method for Region and Store interface (#3671)
    
    Signed-off-by: Duo Zhang <zh...@apache.org>
    Signed-off-by: Anoop Sam John <an...@apache.org>
---
 .../org/apache/hadoop/hbase/coprocessor/ReadOnlyConfiguration.java | 4 ++--
 .../main/java/org/apache/hadoop/hbase/regionserver/HRegion.java    | 6 ++++++
 .../src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java | 6 ++++++
 .../src/main/java/org/apache/hadoop/hbase/regionserver/Region.java | 7 +++++++
 .../src/main/java/org/apache/hadoop/hbase/regionserver/Store.java  | 7 +++++++
 5 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/ReadOnlyConfiguration.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/ReadOnlyConfiguration.java
index b805c50..d7705ef 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/ReadOnlyConfiguration.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/ReadOnlyConfiguration.java
@@ -44,10 +44,10 @@ import org.apache.yetus.audience.InterfaceAudience;
  * Wraps a Configuration to make it read-only.
  */
 @InterfaceAudience.Private
-class ReadOnlyConfiguration extends Configuration {
+public class ReadOnlyConfiguration extends Configuration {
   private final Configuration conf;
 
-  ReadOnlyConfiguration(final Configuration conf) {
+  public ReadOnlyConfiguration(final Configuration conf) {
     this.conf = conf;
   }
 
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index a8bd751..3a474cd 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -125,6 +125,7 @@ import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.conf.ConfigurationManager;
 import org.apache.hadoop.hbase.conf.PropagatingConfigurationObserver;
 import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
+import org.apache.hadoop.hbase.coprocessor.ReadOnlyConfiguration;
 import org.apache.hadoop.hbase.errorhandling.ForeignExceptionSnare;
 import org.apache.hadoop.hbase.exceptions.FailedSanityCheckException;
 import org.apache.hadoop.hbase.exceptions.TimeoutIOException;
@@ -1880,6 +1881,11 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
     }
   }
 
+  @Override
+  public Configuration getReadOnlyConfiguration() {
+    return new ReadOnlyConfiguration(this.conf);
+  }
+
   protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(
       final String threadNamePrefix) {
     int numStores = Math.max(1, this.htableDescriptor.getColumnFamilyCount());
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
index bc26297..ed0e0f3 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
@@ -70,6 +70,7 @@ import org.apache.hadoop.hbase.client.RegionInfo;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.conf.ConfigurationManager;
 import org.apache.hadoop.hbase.conf.PropagatingConfigurationObserver;
+import org.apache.hadoop.hbase.coprocessor.ReadOnlyConfiguration;
 import org.apache.hadoop.hbase.io.HeapSize;
 import org.apache.hadoop.hbase.io.compress.Compression;
 import org.apache.hadoop.hbase.io.crypto.Encryption;
@@ -2901,6 +2902,11 @@ public class HStore implements Store, HeapSize, StoreConfigInformation,
     return mixedRowReadsCount.sum();
   }
 
+  @Override
+  public Configuration getReadOnlyConfiguration() {
+    return new ReadOnlyConfiguration(this.conf);
+  }
+
   void updateMetricsStore(boolean memstoreRead) {
     if (memstoreRead) {
       memstoreOnlyRowReadsCount.increment();
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Region.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Region.java
index 1790468..2a15dc8 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Region.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Region.java
@@ -22,6 +22,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellComparator;
 import org.apache.hadoop.hbase.CompareOperator;
@@ -591,4 +592,10 @@ public interface Region extends ConfigurationObserver {
    * max wait time period.
    */
   boolean waitForFlushes(long timeout);
+
+  /**
+   * @return a read only configuration of this region; throws {@link UnsupportedOperationException}
+   *         if you try to set a configuration.
+   */
+  Configuration getReadOnlyConfiguration();
 }
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
index 6ec9c51..fd1acd9 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
@@ -22,6 +22,7 @@ import java.util.Collection;
 import java.util.OptionalDouble;
 import java.util.OptionalLong;
 
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.hbase.CellComparator;
 import org.apache.hadoop.hbase.HBaseInterfaceAudience;
@@ -292,4 +293,10 @@ public interface Store {
    * @return the number of read requests from the files under this store.
    */
   long getMixedRowReadsCount();
+
+  /**
+   * @return a read only configuration of this store; throws {@link UnsupportedOperationException}
+   *         if you try to set a configuration.
+   */
+  Configuration getReadOnlyConfiguration();
 }