(hbase) branch branch-2.6 updated: HBASE-28512 Update error prone to 2.26.1 (#5845)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2.6 by this push:
 new 9444878f29f HBASE-28512 Update error prone to 2.26.1 (#5845)
9444878f29f is described below

commit 9444878f29f84c06404c211efbf28b4e513e19fb
Author: Duo Zhang 
AuthorDate: Fri Apr 26 13:58:04 2024 +0800

HBASE-28512 Update error prone to 2.26.1 (#5845)

Signed-off-by: Xin Sun 
---
 .../src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java| 3 ++-
 .../java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java | 2 +-
 .../org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java | 2 +-
 pom.xml| 2 +-
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
index e5835fd65b6..0fe46194083 100644
--- a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
+++ b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.http;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import javax.servlet.http.HttpServletRequest;
@@ -94,7 +95,7 @@ public class TestHtmlQuoting {
   quoter.getParameterValues("x"));
 
 Mockito.doReturn(null).when(mockReq).getParameterValues("x");
-assertArrayEquals("Test that missing parameters dont cause NPE for array", 
null,
+assertNull("Test that missing parameters dont cause NPE for array",
   quoter.getParameterValues("x"));
   }
 }
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
index 80d38677237..5fd3186a0c1 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
@@ -311,7 +311,7 @@ public class TestHRegionInfo {
 b = new HRegionInfo(t.getTableName(), midway, null);
 assertTrue(a.compareTo(b) < 0);
 assertTrue(b.compareTo(a) > 0);
-assertEquals(a, a);
+assertTrue(a.equals(a));
 assertEquals(0, a.compareTo(a));
 a = new HRegionInfo(t.getTableName(), Bytes.toBytes("a"), 
Bytes.toBytes("d"));
 b = new HRegionInfo(t.getTableName(), Bytes.toBytes("e"), 
Bytes.toBytes("g"));
diff --git 
a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
 
b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
index 0c44d869d91..7607a6a5a23 100644
--- 
a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
+++ 
b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
@@ -518,7 +518,7 @@ public class TestThriftHBaseServiceHandler {
 
 get = new TGet(wrap(rowName));
 result = handler.get(table, get);
-assertArrayEquals(null, result.getRow());
+assertNull(result.getRow());
 assertEquals(0, result.getColumnValuesSize());
   }
 
diff --git a/pom.xml b/pom.xml
index 416ffebdace..f0f7efcf2f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -634,7 +634,7 @@
 -->
 8.29
 3.1.0
-2.16
+2.26.1
 2.4.2
 1.0.0
 1.8



(hbase) branch branch-2 updated: HBASE-28512 Update error prone to 2.26.1 (#5844)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2 by this push:
 new ad2d1e775e0 HBASE-28512 Update error prone to 2.26.1 (#5844)
ad2d1e775e0 is described below

commit ad2d1e775e0d55d121ad6ceb4db66150355d25e7
Author: Duo Zhang 
AuthorDate: Fri Apr 26 13:57:56 2024 +0800

HBASE-28512 Update error prone to 2.26.1 (#5844)

Signed-off-by: Xin Sun 
---
 .../src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java| 3 ++-
 .../java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java | 2 +-
 .../org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java | 2 +-
 pom.xml| 2 +-
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
index e5835fd65b6..0fe46194083 100644
--- a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
+++ b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.http;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import javax.servlet.http.HttpServletRequest;
@@ -94,7 +95,7 @@ public class TestHtmlQuoting {
   quoter.getParameterValues("x"));
 
 Mockito.doReturn(null).when(mockReq).getParameterValues("x");
-assertArrayEquals("Test that missing parameters dont cause NPE for array", 
null,
+assertNull("Test that missing parameters dont cause NPE for array",
   quoter.getParameterValues("x"));
   }
 }
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
index 80d38677237..5fd3186a0c1 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
@@ -311,7 +311,7 @@ public class TestHRegionInfo {
 b = new HRegionInfo(t.getTableName(), midway, null);
 assertTrue(a.compareTo(b) < 0);
 assertTrue(b.compareTo(a) > 0);
-assertEquals(a, a);
+assertTrue(a.equals(a));
 assertEquals(0, a.compareTo(a));
 a = new HRegionInfo(t.getTableName(), Bytes.toBytes("a"), 
Bytes.toBytes("d"));
 b = new HRegionInfo(t.getTableName(), Bytes.toBytes("e"), 
Bytes.toBytes("g"));
diff --git 
a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
 
b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
index 0c44d869d91..7607a6a5a23 100644
--- 
a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
+++ 
b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
@@ -518,7 +518,7 @@ public class TestThriftHBaseServiceHandler {
 
 get = new TGet(wrap(rowName));
 result = handler.get(table, get);
-assertArrayEquals(null, result.getRow());
+assertNull(result.getRow());
 assertEquals(0, result.getColumnValuesSize());
   }
 
diff --git a/pom.xml b/pom.xml
index e0e838eec04..bb3bc9d8601 100644
--- a/pom.xml
+++ b/pom.xml
@@ -634,7 +634,7 @@
 -->
 8.29
 3.1.0
-2.16
+2.26.1
 2.4.2
 1.0.0
 1.8



(hbase) branch branch-3 updated: HBASE-28512 Update error prone to 2.26.1 (#5843)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-3 by this push:
 new f6f41c467e6 HBASE-28512 Update error prone to 2.26.1 (#5843)
f6f41c467e6 is described below

commit f6f41c467e631c011581a0096b669ef3f820289e
Author: Duo Zhang 
AuthorDate: Fri Apr 26 13:57:42 2024 +0800

HBASE-28512 Update error prone to 2.26.1 (#5843)

Signed-off-by: Xin Sun 
---
 .../src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java| 3 ++-
 .../test/java/org/apache/hadoop/hbase/regionserver/TestRegionInfo.java | 2 +-
 .../org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java | 2 +-
 pom.xml| 2 +-
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
index e5835fd65b6..0fe46194083 100644
--- a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
+++ b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.http;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import javax.servlet.http.HttpServletRequest;
@@ -94,7 +95,7 @@ public class TestHtmlQuoting {
   quoter.getParameterValues("x"));
 
 Mockito.doReturn(null).when(mockReq).getParameterValues("x");
-assertArrayEquals("Test that missing parameters dont cause NPE for array", 
null,
+assertNull("Test that missing parameters dont cause NPE for array",
   quoter.getParameterValues("x"));
   }
 }
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionInfo.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionInfo.java
index de177ec3ace..60fe39ecc77 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionInfo.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionInfo.java
@@ -320,7 +320,7 @@ public class TestRegionInfo {
 b = RegionInfoBuilder.newBuilder(t).setStartKey(midway).build();
 assertTrue(a.compareTo(b) < 0);
 assertTrue(b.compareTo(a) > 0);
-assertEquals(a, a);
+assertTrue(a.equals(a));
 assertEquals(0, a.compareTo(a));
 a = RegionInfoBuilder.newBuilder(t).setStartKey(Bytes.toBytes("a"))
   .setEndKey(Bytes.toBytes("d")).build();
diff --git 
a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
 
b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
index 9e9e1554aac..810bb87baa9 100644
--- 
a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
+++ 
b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
@@ -536,7 +536,7 @@ public class TestThriftHBaseServiceHandler {
 
 get = new TGet(wrap(rowName));
 result = handler.get(table, get);
-assertArrayEquals(null, result.getRow());
+assertNull(result.getRow());
 assertEquals(0, result.getColumnValuesSize());
   }
 
diff --git a/pom.xml b/pom.xml
index 3bb3b4ae929..9b5d6c7fa84 100644
--- a/pom.xml
+++ b/pom.xml
@@ -880,7 +880,7 @@
 -->
 8.29
 3.1.0
-2.16
+2.26.1
 2.4.2
 1.0.0
 1.8



(hbase) branch master updated: HBASE-28512 Update error prone to 2.26.1 (#5838)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
 new 8828e45b610 HBASE-28512 Update error prone to 2.26.1 (#5838)
8828e45b610 is described below

commit 8828e45b6109e834745d30311e3d6ce808f38537
Author: Duo Zhang 
AuthorDate: Fri Apr 26 13:57:25 2024 +0800

HBASE-28512 Update error prone to 2.26.1 (#5838)

Signed-off-by: Xin Sun 
---
 .../src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java| 3 ++-
 .../test/java/org/apache/hadoop/hbase/regionserver/TestRegionInfo.java | 2 +-
 .../org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java | 2 +-
 pom.xml| 2 +-
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
index e5835fd65b6..0fe46194083 100644
--- a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
+++ b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.http;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import javax.servlet.http.HttpServletRequest;
@@ -94,7 +95,7 @@ public class TestHtmlQuoting {
   quoter.getParameterValues("x"));
 
 Mockito.doReturn(null).when(mockReq).getParameterValues("x");
-assertArrayEquals("Test that missing parameters dont cause NPE for array", 
null,
+assertNull("Test that missing parameters dont cause NPE for array",
   quoter.getParameterValues("x"));
   }
 }
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionInfo.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionInfo.java
index de177ec3ace..60fe39ecc77 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionInfo.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionInfo.java
@@ -320,7 +320,7 @@ public class TestRegionInfo {
 b = RegionInfoBuilder.newBuilder(t).setStartKey(midway).build();
 assertTrue(a.compareTo(b) < 0);
 assertTrue(b.compareTo(a) > 0);
-assertEquals(a, a);
+assertTrue(a.equals(a));
 assertEquals(0, a.compareTo(a));
 a = RegionInfoBuilder.newBuilder(t).setStartKey(Bytes.toBytes("a"))
   .setEndKey(Bytes.toBytes("d")).build();
diff --git 
a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
 
b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
index 9e9e1554aac..810bb87baa9 100644
--- 
a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
+++ 
b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
@@ -536,7 +536,7 @@ public class TestThriftHBaseServiceHandler {
 
 get = new TGet(wrap(rowName));
 result = handler.get(table, get);
-assertArrayEquals(null, result.getRow());
+assertNull(result.getRow());
 assertEquals(0, result.getColumnValuesSize());
   }
 
diff --git a/pom.xml b/pom.xml
index 635afe9b78e..195d3d73947 100644
--- a/pom.xml
+++ b/pom.xml
@@ -892,7 +892,7 @@
 -->
 8.29
 3.1.0
-2.16
+2.26.1
 2.4.2
 1.0.0
 1.8



(hbase) branch branch-2 updated: HBASE-28436 Addendum fix naming issue (#5855)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2 by this push:
 new 5fa80805c5a HBASE-28436 Addendum fix naming issue (#5855)
5fa80805c5a is described below

commit 5fa80805c5a0d5b402dba41a67937c95028896fc
Author: Duo Zhang 
AuthorDate: Thu Apr 25 23:38:18 2024 +0800

HBASE-28436 Addendum fix naming issue (#5855)

(cherry picked from commit 4b49e53a91b21875e10ad819656c6856a060c81f)
---
 .../hadoop/hbase/client/ConnectionRegistryFactory.java   | 12 ++--
 ...stryCreator.java => RpcConnectionRegistryURIFactory.java} |  4 ++--
 ...istryCreator.java => ZKConnectionRegistryURIFactory.java} |  4 ++--
 ...g.apache.hadoop.hbase.client.ConnectionRegistryURIFactory |  4 ++--
 ...UriParsing.java => TestConnectionRegistryUriParsing.java} |  4 ++--
 5 files changed, 14 insertions(+), 14 deletions(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
index e82b551ad28..859d3d91b8d 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
@@ -39,7 +39,7 @@ final class ConnectionRegistryFactory {
 
   private static final Logger LOG = 
LoggerFactory.getLogger(ConnectionRegistryFactory.class);
 
-  private static final ImmutableMap 
CREATORS;
+  private static final ImmutableMap 
FACTORIES;
   static {
 ImmutableMap.Builder builder = 
ImmutableMap.builder();
 for (ConnectionRegistryURIFactory factory : ServiceLoader
@@ -47,7 +47,7 @@ final class ConnectionRegistryFactory {
   builder.put(factory.getScheme().toLowerCase(), factory);
 }
 // throw IllegalArgumentException if there are duplicated keys
-CREATORS = builder.buildOrThrow();
+FACTORIES = builder.buildOrThrow();
   }
 
   private ConnectionRegistryFactory() {
@@ -69,12 +69,12 @@ final class ConnectionRegistryFactory {
   LOG.warn("No scheme specified for {}, fallback to use old way", uri);
   return create(conf, user);
 }
-ConnectionRegistryURIFactory creator = 
CREATORS.get(uri.getScheme().toLowerCase());
-if (creator == null) {
-  LOG.warn("No creator registered for {}, fallback to use old way", uri);
+ConnectionRegistryURIFactory factory = 
FACTORIES.get(uri.getScheme().toLowerCase());
+if (factory == null) {
+  LOG.warn("No factory registered for {}, fallback to use old way", uri);
   return create(conf, user);
 }
-return creator.create(uri, conf, user);
+return factory.create(uri, conf, user);
   }
 
   /**
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryCreator.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryURIFactory.java
similarity index 93%
rename from 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryCreator.java
rename to 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryURIFactory.java
index cb2338b1429..79081ee6c64 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryCreator.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryURIFactory.java
@@ -29,9 +29,9 @@ import org.slf4j.LoggerFactory;
  * Connection registry creator implementation for creating {@link 
RpcConnectionRegistry}.
  */
 @InterfaceAudience.Private
-public class RpcConnectionRegistryCreator implements 
ConnectionRegistryURIFactory {
+public class RpcConnectionRegistryURIFactory implements 
ConnectionRegistryURIFactory {
 
-  private static final Logger LOG = 
LoggerFactory.getLogger(RpcConnectionRegistryCreator.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(RpcConnectionRegistryURIFactory.class);
 
   @Override
   public ConnectionRegistry create(URI uri, Configuration conf, User user) 
throws IOException {
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryCreator.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryURIFactory.java
similarity index 94%
rename from 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryCreator.java
rename to 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryURIFactory.java
index 8aa51e04fe4..939adab23b7 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryCreator.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryURIFactory.java
@@ -30,9 +30,9 @@ import org.slf4j.LoggerFactory;
  * Connection registry creator implementation for creating 

(hbase) branch branch-3 updated: HBASE-28436 Addendum fix naming issue (#5855)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-3 by this push:
 new 4c7d7669dc9 HBASE-28436 Addendum fix naming issue (#5855)
4c7d7669dc9 is described below

commit 4c7d7669dc93d1bbe8a383cb1c36fdcb9db3ea92
Author: Duo Zhang 
AuthorDate: Thu Apr 25 23:38:18 2024 +0800

HBASE-28436 Addendum fix naming issue (#5855)

(cherry picked from commit 4b49e53a91b21875e10ad819656c6856a060c81f)
---
 .../hadoop/hbase/client/ConnectionRegistryFactory.java   | 12 ++--
 ...stryCreator.java => RpcConnectionRegistryURIFactory.java} |  4 ++--
 ...istryCreator.java => ZKConnectionRegistryURIFactory.java} |  4 ++--
 ...g.apache.hadoop.hbase.client.ConnectionRegistryURIFactory |  4 ++--
 ...UriParsing.java => TestConnectionRegistryUriParsing.java} |  4 ++--
 5 files changed, 14 insertions(+), 14 deletions(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
index 5eef2c5f93e..af4cf75af7f 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
@@ -39,7 +39,7 @@ final class ConnectionRegistryFactory {
 
   private static final Logger LOG = 
LoggerFactory.getLogger(ConnectionRegistryFactory.class);
 
-  private static final ImmutableMap 
CREATORS;
+  private static final ImmutableMap 
FACTORIES;
   static {
 ImmutableMap.Builder builder = 
ImmutableMap.builder();
 for (ConnectionRegistryURIFactory factory : ServiceLoader
@@ -47,7 +47,7 @@ final class ConnectionRegistryFactory {
   builder.put(factory.getScheme().toLowerCase(), factory);
 }
 // throw IllegalArgumentException if there are duplicated keys
-CREATORS = builder.buildOrThrow();
+FACTORIES = builder.buildOrThrow();
   }
 
   private ConnectionRegistryFactory() {
@@ -69,12 +69,12 @@ final class ConnectionRegistryFactory {
   LOG.warn("No scheme specified for {}, fallback to use old way", uri);
   return create(conf, user);
 }
-ConnectionRegistryURIFactory creator = 
CREATORS.get(uri.getScheme().toLowerCase());
-if (creator == null) {
-  LOG.warn("No creator registered for {}, fallback to use old way", uri);
+ConnectionRegistryURIFactory factory = 
FACTORIES.get(uri.getScheme().toLowerCase());
+if (factory == null) {
+  LOG.warn("No factory registered for {}, fallback to use old way", uri);
   return create(conf, user);
 }
-return creator.create(uri, conf, user);
+return factory.create(uri, conf, user);
   }
 
   /**
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryCreator.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryURIFactory.java
similarity index 93%
rename from 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryCreator.java
rename to 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryURIFactory.java
index cb2338b1429..79081ee6c64 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryCreator.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryURIFactory.java
@@ -29,9 +29,9 @@ import org.slf4j.LoggerFactory;
  * Connection registry creator implementation for creating {@link 
RpcConnectionRegistry}.
  */
 @InterfaceAudience.Private
-public class RpcConnectionRegistryCreator implements 
ConnectionRegistryURIFactory {
+public class RpcConnectionRegistryURIFactory implements 
ConnectionRegistryURIFactory {
 
-  private static final Logger LOG = 
LoggerFactory.getLogger(RpcConnectionRegistryCreator.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(RpcConnectionRegistryURIFactory.class);
 
   @Override
   public ConnectionRegistry create(URI uri, Configuration conf, User user) 
throws IOException {
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryCreator.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryURIFactory.java
similarity index 94%
rename from 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryCreator.java
rename to 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryURIFactory.java
index 8aa51e04fe4..939adab23b7 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryCreator.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryURIFactory.java
@@ -30,9 +30,9 @@ import org.slf4j.LoggerFactory;
  * Connection registry creator implementation for creating 

(hbase) branch master updated: HBASE-28436 Addendum fix naming issue (#5855)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
 new 4b49e53a91b HBASE-28436 Addendum fix naming issue (#5855)
4b49e53a91b is described below

commit 4b49e53a91b21875e10ad819656c6856a060c81f
Author: Duo Zhang 
AuthorDate: Thu Apr 25 23:38:18 2024 +0800

HBASE-28436 Addendum fix naming issue (#5855)
---
 .../hadoop/hbase/client/ConnectionRegistryFactory.java   | 12 ++--
 ...stryCreator.java => RpcConnectionRegistryURIFactory.java} |  4 ++--
 ...istryCreator.java => ZKConnectionRegistryURIFactory.java} |  4 ++--
 ...g.apache.hadoop.hbase.client.ConnectionRegistryURIFactory |  4 ++--
 ...UriParsing.java => TestConnectionRegistryUriParsing.java} |  4 ++--
 5 files changed, 14 insertions(+), 14 deletions(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
index 5eef2c5f93e..af4cf75af7f 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryFactory.java
@@ -39,7 +39,7 @@ final class ConnectionRegistryFactory {
 
   private static final Logger LOG = 
LoggerFactory.getLogger(ConnectionRegistryFactory.class);
 
-  private static final ImmutableMap 
CREATORS;
+  private static final ImmutableMap 
FACTORIES;
   static {
 ImmutableMap.Builder builder = 
ImmutableMap.builder();
 for (ConnectionRegistryURIFactory factory : ServiceLoader
@@ -47,7 +47,7 @@ final class ConnectionRegistryFactory {
   builder.put(factory.getScheme().toLowerCase(), factory);
 }
 // throw IllegalArgumentException if there are duplicated keys
-CREATORS = builder.buildOrThrow();
+FACTORIES = builder.buildOrThrow();
   }
 
   private ConnectionRegistryFactory() {
@@ -69,12 +69,12 @@ final class ConnectionRegistryFactory {
   LOG.warn("No scheme specified for {}, fallback to use old way", uri);
   return create(conf, user);
 }
-ConnectionRegistryURIFactory creator = 
CREATORS.get(uri.getScheme().toLowerCase());
-if (creator == null) {
-  LOG.warn("No creator registered for {}, fallback to use old way", uri);
+ConnectionRegistryURIFactory factory = 
FACTORIES.get(uri.getScheme().toLowerCase());
+if (factory == null) {
+  LOG.warn("No factory registered for {}, fallback to use old way", uri);
   return create(conf, user);
 }
-return creator.create(uri, conf, user);
+return factory.create(uri, conf, user);
   }
 
   /**
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryCreator.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryURIFactory.java
similarity index 93%
rename from 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryCreator.java
rename to 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryURIFactory.java
index cb2338b1429..79081ee6c64 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryCreator.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryURIFactory.java
@@ -29,9 +29,9 @@ import org.slf4j.LoggerFactory;
  * Connection registry creator implementation for creating {@link 
RpcConnectionRegistry}.
  */
 @InterfaceAudience.Private
-public class RpcConnectionRegistryCreator implements 
ConnectionRegistryURIFactory {
+public class RpcConnectionRegistryURIFactory implements 
ConnectionRegistryURIFactory {
 
-  private static final Logger LOG = 
LoggerFactory.getLogger(RpcConnectionRegistryCreator.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(RpcConnectionRegistryURIFactory.class);
 
   @Override
   public ConnectionRegistry create(URI uri, Configuration conf, User user) 
throws IOException {
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryCreator.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryURIFactory.java
similarity index 94%
rename from 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryCreator.java
rename to 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryURIFactory.java
index 8aa51e04fe4..939adab23b7 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryCreator.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryURIFactory.java
@@ -30,9 +30,9 @@ import org.slf4j.LoggerFactory;
  * Connection registry creator implementation for creating {@link 
ZKConnectionRegistry}.
  */
 @InterfaceAudience.Private
-public class 

(hbase-site) branch asf-site updated: INFRA-10751 Empty commit

2024-04-25 Thread git-site-role
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/asf-site by this push:
 new fff5e3bdbe3 INFRA-10751 Empty commit
fff5e3bdbe3 is described below

commit fff5e3bdbe392bda16b6f4d1c1c92bd89d99e490
Author: jenkins 
AuthorDate: Thu Apr 25 14:47:45 2024 +

INFRA-10751 Empty commit



(hbase) branch branch-3 updated: HBASE-28518 Allow specifying a filter for the REST multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-3 by this push:
 new 56d46e746f8 HBASE-28518 Allow specifying a filter for the REST 
multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)
56d46e746f8 is described below

commit 56d46e746f81a181ed0186b4fa6e7df48eb8c473
Author: Istvan Toth 
AuthorDate: Thu Apr 25 15:56:42 2024 +0200

HBASE-28518 Allow specifying a filter for the REST multiget endpoint 
(addendum: add back SCAN_FILTER constant) (#5852)

Signed-off-by: Duo Zhang 
(cherry picked from commit 4a9f6f2fe7b345891c8d37961e7db661042e0e93)
---
 .../src/main/java/org/apache/hadoop/hbase/rest/Constants.java   | 6 ++
 .../main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java| 1 -
 .../src/main/java/org/apache/hadoop/hbase/rest/TableResource.java   | 1 -
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
index 71080de07dd..8d606793be6 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
@@ -86,6 +86,12 @@ public interface Constants {
   String SCAN_LIMIT = "limit";
   String SCAN_FETCH_SIZE = "hbase.rest.scan.fetchsize";
   String FILTER = "filter";
+  /**
+   * @deprecated Since 2.4.18/2.5.9/2.6.0, will be removed in 4.0.0. Please 
use {@link #FILTER}
+   * instead.
+   */
+  @Deprecated
+  String SCAN_FILTER = FILTER;
   String FILTER_B64 = "filter_b64";
   String SCAN_REVERSED = "reversed";
   String SCAN_CACHE_BLOCKS = "cacheblocks";
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
index 47b3c22a7c9..4c2f6c3216b 100644
--- 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
+++ 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
@@ -87,7 +87,6 @@ public class MultiRowResource extends ResourceBase implements 
Constants {
 if (paramFilterB64 != null) {
   filterBytes = base64Urldecoder.decode(paramFilterB64);
 } else if (paramFilter != null) {
-  // Not binary clean
   filterBytes = paramFilter.getBytes();
 }
 
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
index fc3fb6bf705..b311e7b0eb7 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
@@ -183,7 +183,6 @@ public class TableResource extends ResourceBase {
   if (paramFilterB64 != null) {
 filterBytes = base64Urldecoder.decode(paramFilterB64);
   } else if (paramFilter != null) {
-// Not binary clean
 filterBytes = paramFilter.getBytes();
   }
   if (filterBytes != null) {



(hbase) branch branch-2 updated: HBASE-28518 Allow specifying a filter for the REST multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2 by this push:
 new f3f35fd4732 HBASE-28518 Allow specifying a filter for the REST 
multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)
f3f35fd4732 is described below

commit f3f35fd4732272e402d1cbf4b271d919a46b1a8a
Author: Istvan Toth 
AuthorDate: Thu Apr 25 15:56:42 2024 +0200

HBASE-28518 Allow specifying a filter for the REST multiget endpoint 
(addendum: add back SCAN_FILTER constant) (#5852)

Signed-off-by: Duo Zhang 
(cherry picked from commit 4a9f6f2fe7b345891c8d37961e7db661042e0e93)
---
 .../src/main/java/org/apache/hadoop/hbase/rest/Constants.java   | 6 ++
 .../main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java| 1 -
 .../src/main/java/org/apache/hadoop/hbase/rest/TableResource.java   | 1 -
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
index 71080de07dd..8d606793be6 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
@@ -86,6 +86,12 @@ public interface Constants {
   String SCAN_LIMIT = "limit";
   String SCAN_FETCH_SIZE = "hbase.rest.scan.fetchsize";
   String FILTER = "filter";
+  /**
+   * @deprecated Since 2.4.18/2.5.9/2.6.0, will be removed in 4.0.0. Please 
use {@link #FILTER}
+   * instead.
+   */
+  @Deprecated
+  String SCAN_FILTER = FILTER;
   String FILTER_B64 = "filter_b64";
   String SCAN_REVERSED = "reversed";
   String SCAN_CACHE_BLOCKS = "cacheblocks";
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
index 47b3c22a7c9..4c2f6c3216b 100644
--- 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
+++ 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
@@ -87,7 +87,6 @@ public class MultiRowResource extends ResourceBase implements 
Constants {
 if (paramFilterB64 != null) {
   filterBytes = base64Urldecoder.decode(paramFilterB64);
 } else if (paramFilter != null) {
-  // Not binary clean
   filterBytes = paramFilter.getBytes();
 }
 
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
index 8bfc0455303..b8543287c89 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
@@ -183,7 +183,6 @@ public class TableResource extends ResourceBase {
   if (paramFilterB64 != null) {
 filterBytes = base64Urldecoder.decode(paramFilterB64);
   } else if (paramFilter != null) {
-// Not binary clean
 filterBytes = paramFilter.getBytes();
   }
   if (filterBytes != null) {



(hbase) branch branch-2.6 updated: HBASE-28518 Allow specifying a filter for the REST multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2.6 by this push:
 new fed7a521e3e HBASE-28518 Allow specifying a filter for the REST 
multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)
fed7a521e3e is described below

commit fed7a521e3e74c1fa881f742756bf79b7253718c
Author: Istvan Toth 
AuthorDate: Thu Apr 25 15:56:42 2024 +0200

HBASE-28518 Allow specifying a filter for the REST multiget endpoint 
(addendum: add back SCAN_FILTER constant) (#5852)

Signed-off-by: Duo Zhang 
(cherry picked from commit 4a9f6f2fe7b345891c8d37961e7db661042e0e93)
---
 .../src/main/java/org/apache/hadoop/hbase/rest/Constants.java   | 6 ++
 .../main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java| 1 -
 .../src/main/java/org/apache/hadoop/hbase/rest/TableResource.java   | 1 -
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
index 71080de07dd..8d606793be6 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
@@ -86,6 +86,12 @@ public interface Constants {
   String SCAN_LIMIT = "limit";
   String SCAN_FETCH_SIZE = "hbase.rest.scan.fetchsize";
   String FILTER = "filter";
+  /**
+   * @deprecated Since 2.4.18/2.5.9/2.6.0, will be removed in 4.0.0. Please 
use {@link #FILTER}
+   * instead.
+   */
+  @Deprecated
+  String SCAN_FILTER = FILTER;
   String FILTER_B64 = "filter_b64";
   String SCAN_REVERSED = "reversed";
   String SCAN_CACHE_BLOCKS = "cacheblocks";
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
index 47b3c22a7c9..4c2f6c3216b 100644
--- 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
+++ 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
@@ -87,7 +87,6 @@ public class MultiRowResource extends ResourceBase implements 
Constants {
 if (paramFilterB64 != null) {
   filterBytes = base64Urldecoder.decode(paramFilterB64);
 } else if (paramFilter != null) {
-  // Not binary clean
   filterBytes = paramFilter.getBytes();
 }
 
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
index 8bfc0455303..b8543287c89 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
@@ -183,7 +183,6 @@ public class TableResource extends ResourceBase {
   if (paramFilterB64 != null) {
 filterBytes = base64Urldecoder.decode(paramFilterB64);
   } else if (paramFilter != null) {
-// Not binary clean
 filterBytes = paramFilter.getBytes();
   }
   if (filterBytes != null) {



(hbase) branch branch-2.5 updated: HBASE-28518 Allow specifying a filter for the REST multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2.5 by this push:
 new 2ba7bb5be6d HBASE-28518 Allow specifying a filter for the REST 
multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)
2ba7bb5be6d is described below

commit 2ba7bb5be6dc9376e2eeac73eda6c50ce8a7c983
Author: Istvan Toth 
AuthorDate: Thu Apr 25 15:56:42 2024 +0200

HBASE-28518 Allow specifying a filter for the REST multiget endpoint 
(addendum: add back SCAN_FILTER constant) (#5852)

Signed-off-by: Duo Zhang 
(cherry picked from commit 4a9f6f2fe7b345891c8d37961e7db661042e0e93)
---
 .../src/main/java/org/apache/hadoop/hbase/rest/Constants.java   | 6 ++
 .../main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java| 1 -
 .../src/main/java/org/apache/hadoop/hbase/rest/TableResource.java   | 1 -
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
index 71080de07dd..8d606793be6 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
@@ -86,6 +86,12 @@ public interface Constants {
   String SCAN_LIMIT = "limit";
   String SCAN_FETCH_SIZE = "hbase.rest.scan.fetchsize";
   String FILTER = "filter";
+  /**
+   * @deprecated Since 2.4.18/2.5.9/2.6.0, will be removed in 4.0.0. Please 
use {@link #FILTER}
+   * instead.
+   */
+  @Deprecated
+  String SCAN_FILTER = FILTER;
   String FILTER_B64 = "filter_b64";
   String SCAN_REVERSED = "reversed";
   String SCAN_CACHE_BLOCKS = "cacheblocks";
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
index 47b3c22a7c9..4c2f6c3216b 100644
--- 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
+++ 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
@@ -87,7 +87,6 @@ public class MultiRowResource extends ResourceBase implements 
Constants {
 if (paramFilterB64 != null) {
   filterBytes = base64Urldecoder.decode(paramFilterB64);
 } else if (paramFilter != null) {
-  // Not binary clean
   filterBytes = paramFilter.getBytes();
 }
 
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
index 8bfc0455303..b8543287c89 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
@@ -183,7 +183,6 @@ public class TableResource extends ResourceBase {
   if (paramFilterB64 != null) {
 filterBytes = base64Urldecoder.decode(paramFilterB64);
   } else if (paramFilter != null) {
-// Not binary clean
 filterBytes = paramFilter.getBytes();
   }
   if (filterBytes != null) {



(hbase) branch branch-2.4 updated: HBASE-28518 Allow specifying a filter for the REST multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2.4 by this push:
 new be4be93aad0 HBASE-28518 Allow specifying a filter for the REST 
multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)
be4be93aad0 is described below

commit be4be93aad0274300779da87d67863b1c38dbd3a
Author: Istvan Toth 
AuthorDate: Thu Apr 25 15:56:42 2024 +0200

HBASE-28518 Allow specifying a filter for the REST multiget endpoint 
(addendum: add back SCAN_FILTER constant) (#5852)

Signed-off-by: Duo Zhang 
(cherry picked from commit 4a9f6f2fe7b345891c8d37961e7db661042e0e93)
---
 .../src/main/java/org/apache/hadoop/hbase/rest/Constants.java   | 6 ++
 .../main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java| 1 -
 .../src/main/java/org/apache/hadoop/hbase/rest/TableResource.java   | 1 -
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
index 71080de07dd..8d606793be6 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
@@ -86,6 +86,12 @@ public interface Constants {
   String SCAN_LIMIT = "limit";
   String SCAN_FETCH_SIZE = "hbase.rest.scan.fetchsize";
   String FILTER = "filter";
+  /**
+   * @deprecated Since 2.4.18/2.5.9/2.6.0, will be removed in 4.0.0. Please 
use {@link #FILTER}
+   * instead.
+   */
+  @Deprecated
+  String SCAN_FILTER = FILTER;
   String FILTER_B64 = "filter_b64";
   String SCAN_REVERSED = "reversed";
   String SCAN_CACHE_BLOCKS = "cacheblocks";
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
index 47b3c22a7c9..4c2f6c3216b 100644
--- 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
+++ 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
@@ -87,7 +87,6 @@ public class MultiRowResource extends ResourceBase implements 
Constants {
 if (paramFilterB64 != null) {
   filterBytes = base64Urldecoder.decode(paramFilterB64);
 } else if (paramFilter != null) {
-  // Not binary clean
   filterBytes = paramFilter.getBytes();
 }
 
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
index 8bfc0455303..b8543287c89 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
@@ -183,7 +183,6 @@ public class TableResource extends ResourceBase {
   if (paramFilterB64 != null) {
 filterBytes = base64Urldecoder.decode(paramFilterB64);
   } else if (paramFilter != null) {
-// Not binary clean
 filterBytes = paramFilter.getBytes();
   }
   if (filterBytes != null) {



(hbase) branch master updated: HBASE-28518 Allow specifying a filter for the REST multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)

2024-04-25 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
 new 4a9f6f2fe7b HBASE-28518 Allow specifying a filter for the REST 
multiget endpoint (addendum: add back SCAN_FILTER constant) (#5852)
4a9f6f2fe7b is described below

commit 4a9f6f2fe7b345891c8d37961e7db661042e0e93
Author: Istvan Toth 
AuthorDate: Thu Apr 25 15:56:42 2024 +0200

HBASE-28518 Allow specifying a filter for the REST multiget endpoint 
(addendum: add back SCAN_FILTER constant) (#5852)

Signed-off-by: Duo Zhang 
---
 .../src/main/java/org/apache/hadoop/hbase/rest/Constants.java   | 6 ++
 .../main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java| 1 -
 .../src/main/java/org/apache/hadoop/hbase/rest/TableResource.java   | 1 -
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
index 71080de07dd..8d606793be6 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
@@ -86,6 +86,12 @@ public interface Constants {
   String SCAN_LIMIT = "limit";
   String SCAN_FETCH_SIZE = "hbase.rest.scan.fetchsize";
   String FILTER = "filter";
+  /**
+   * @deprecated Since 2.4.18/2.5.9/2.6.0, will be removed in 4.0.0. Please 
use {@link #FILTER}
+   * instead.
+   */
+  @Deprecated
+  String SCAN_FILTER = FILTER;
   String FILTER_B64 = "filter_b64";
   String SCAN_REVERSED = "reversed";
   String SCAN_CACHE_BLOCKS = "cacheblocks";
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
index 47b3c22a7c9..4c2f6c3216b 100644
--- 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
+++ 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
@@ -87,7 +87,6 @@ public class MultiRowResource extends ResourceBase implements 
Constants {
 if (paramFilterB64 != null) {
   filterBytes = base64Urldecoder.decode(paramFilterB64);
 } else if (paramFilter != null) {
-  // Not binary clean
   filterBytes = paramFilter.getBytes();
 }
 
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
index fc3fb6bf705..b311e7b0eb7 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java
@@ -183,7 +183,6 @@ public class TableResource extends ResourceBase {
   if (paramFilterB64 != null) {
 filterBytes = base64Urldecoder.decode(paramFilterB64);
   } else if (paramFilter != null) {
-// Not binary clean
 filterBytes = paramFilter.getBytes();
   }
   if (filterBytes != null) {



(hbase) branch branch-2.4 updated: HBASE-28517 Make properties dynamically configured (#5823)

2024-04-25 Thread psomogyi
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2.4 by this push:
 new b266e6b99b4 HBASE-28517 Make properties dynamically configured (#5823)
b266e6b99b4 is described below

commit b266e6b99b411fd9e570beaca6b4427bbefbede1
Author: Abhishek Kothalikar <99398985+kabhish...@users.noreply.github.com>
AuthorDate: Thu Apr 25 15:28:03 2024 +0530

HBASE-28517 Make properties dynamically configured (#5823)

Signed-off-by: Duo Zhang 
Signed-off-by: Peter Somogyi 
(cherry picked from commit 7122da5978a558b8d1d31c5a20b95167f8bfbf8b)
---
 .../apache/hadoop/hbase/io/hfile/CacheConfig.java| 19 ---
 .../hadoop/hbase/io/hfile/PrefetchExecutor.java  |  3 +--
 .../org/apache/hadoop/hbase/regionserver/HStore.java |  5 -
 .../apache/hadoop/hbase/regionserver/TestHStore.java | 20 
 4 files changed, 41 insertions(+), 6 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
index 9f64baa48c4..9f7086d6e6a 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.io.hfile;
 import java.util.Optional;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.conf.ConfigurationObserver;
 import org.apache.hadoop.hbase.io.ByteBuffAllocator;
 import org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -30,7 +31,7 @@ import org.slf4j.LoggerFactory;
  * Stores all of the cache objects and configuration for a single HFile.
  */
 @InterfaceAudience.Private
-public class CacheConfig {
+public class CacheConfig implements ConfigurationObserver {
   private static final Logger LOG = 
LoggerFactory.getLogger(CacheConfig.class.getName());
 
   /**
@@ -111,13 +112,13 @@ public class CacheConfig {
* turned off on a per-family or per-request basis). If off we will STILL 
cache meta blocks; i.e.
* INDEX and BLOOM types. This cannot be disabled.
*/
-  private final boolean cacheDataOnRead;
+  private volatile boolean cacheDataOnRead;
 
   /** Whether blocks should be flagged as in-memory when being cached */
   private final boolean inMemory;
 
   /** Whether data blocks should be cached when new files are written */
-  private boolean cacheDataOnWrite;
+  private volatile boolean cacheDataOnWrite;
 
   /** Whether index blocks should be cached when new files are written */
   private boolean cacheIndexesOnWrite;
@@ -430,4 +431,16 @@ public class CacheConfig {
   + shouldEvictOnClose() + ", cacheDataCompressed=" + 
shouldCacheDataCompressed()
   + ", prefetchOnOpen=" + shouldPrefetchOnOpen();
   }
+
+  @Override
+  public void onConfigurationChange(Configuration conf) {
+cacheDataOnRead = conf.getBoolean(CACHE_DATA_ON_READ_KEY, 
DEFAULT_CACHE_DATA_ON_READ);
+cacheDataOnWrite = conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, 
DEFAULT_CACHE_DATA_ON_WRITE);
+evictOnClose = conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, 
DEFAULT_EVICT_ON_CLOSE);
+LOG.info(
+  "Config hbase.block.data.cacheonread is changed to {}, "
++ "hbase.rs.cacheblocksonwrite is changed to {}, "
++ "hbase.rs.evictblocksonclose is changed to {}",
+  cacheDataOnRead, cacheDataOnWrite, evictOnClose);
+  }
 }
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java
index 707515fd8af..a265e31409c 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java
@@ -99,8 +99,7 @@ public final class PrefetchExecutor {
   }
   try {
 LOG.debug("Prefetch requested for {}, delay={} ms", path, delay);
-final Runnable tracedRunnable =
-  TraceUtil.wrap(runnable, "PrefetchExecutor.request");
+final Runnable tracedRunnable = TraceUtil.wrap(runnable, 
"PrefetchExecutor.request");
 final Future future =
   prefetchExecutorPool.schedule(tracedRunnable, delay, 
TimeUnit.MILLISECONDS);
 prefetchFutures.put(path, future);
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 1996171f801..e8f535f8461 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
+++ 

(hbase) branch branch-2.5 updated: HBASE-28517 Make properties dynamically configured (#5823)

2024-04-25 Thread psomogyi
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2.5 by this push:
 new d53acacb957 HBASE-28517 Make properties dynamically configured (#5823)
d53acacb957 is described below

commit d53acacb9573fcf3bd4fba0242b6088fbe5932f8
Author: Abhishek Kothalikar <99398985+kabhish...@users.noreply.github.com>
AuthorDate: Thu Apr 25 15:28:03 2024 +0530

HBASE-28517 Make properties dynamically configured (#5823)

Signed-off-by: Duo Zhang 
Signed-off-by: Peter Somogyi 
(cherry picked from commit 7122da5978a558b8d1d31c5a20b95167f8bfbf8b)
---
 .../apache/hadoop/hbase/io/hfile/CacheConfig.java| 19 ---
 .../org/apache/hadoop/hbase/regionserver/HStore.java |  5 -
 .../apache/hadoop/hbase/regionserver/TestHStore.java | 20 
 3 files changed, 40 insertions(+), 4 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
index 9f64baa48c4..9f7086d6e6a 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.io.hfile;
 import java.util.Optional;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.conf.ConfigurationObserver;
 import org.apache.hadoop.hbase.io.ByteBuffAllocator;
 import org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -30,7 +31,7 @@ import org.slf4j.LoggerFactory;
  * Stores all of the cache objects and configuration for a single HFile.
  */
 @InterfaceAudience.Private
-public class CacheConfig {
+public class CacheConfig implements ConfigurationObserver {
   private static final Logger LOG = 
LoggerFactory.getLogger(CacheConfig.class.getName());
 
   /**
@@ -111,13 +112,13 @@ public class CacheConfig {
* turned off on a per-family or per-request basis). If off we will STILL 
cache meta blocks; i.e.
* INDEX and BLOOM types. This cannot be disabled.
*/
-  private final boolean cacheDataOnRead;
+  private volatile boolean cacheDataOnRead;
 
   /** Whether blocks should be flagged as in-memory when being cached */
   private final boolean inMemory;
 
   /** Whether data blocks should be cached when new files are written */
-  private boolean cacheDataOnWrite;
+  private volatile boolean cacheDataOnWrite;
 
   /** Whether index blocks should be cached when new files are written */
   private boolean cacheIndexesOnWrite;
@@ -430,4 +431,16 @@ public class CacheConfig {
   + shouldEvictOnClose() + ", cacheDataCompressed=" + 
shouldCacheDataCompressed()
   + ", prefetchOnOpen=" + shouldPrefetchOnOpen();
   }
+
+  @Override
+  public void onConfigurationChange(Configuration conf) {
+cacheDataOnRead = conf.getBoolean(CACHE_DATA_ON_READ_KEY, 
DEFAULT_CACHE_DATA_ON_READ);
+cacheDataOnWrite = conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, 
DEFAULT_CACHE_DATA_ON_WRITE);
+evictOnClose = conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, 
DEFAULT_EVICT_ON_CLOSE);
+LOG.info(
+  "Config hbase.block.data.cacheonread is changed to {}, "
++ "hbase.rs.cacheblocksonwrite is changed to {}, "
++ "hbase.rs.evictblocksonclose is changed to {}",
+  cacheDataOnRead, cacheDataOnWrite, evictOnClose);
+  }
 }
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 888b684e9f5..baebdb899e2 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
@@ -2180,7 +2180,10 @@ public class HStore
*/
   @Override
   public void registerChildren(ConfigurationManager manager) {
-// No children to register
+CacheConfig cacheConfig = this.storeContext.getCacheConf();
+if (cacheConfig != null) {
+  manager.registerObserver(cacheConfig);
+}
   }
 
   /**
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
index 86187172569..299e070acea 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
@@ -17,6 +17,12 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import static 
org.apache.hadoop.hbase.io.hfile.CacheConfig.CACHE_BLOCKS_ON_WRITE_KEY;
+import static 

(hbase) branch branch-2.6 updated: HBASE-28517 Make properties dynamically configured (#5823)

2024-04-25 Thread psomogyi
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2.6 by this push:
 new 3354c1f6185 HBASE-28517 Make properties dynamically configured (#5823)
3354c1f6185 is described below

commit 3354c1f61854e98f281d6e6de1f79a98fb1528a3
Author: Abhishek Kothalikar <99398985+kabhish...@users.noreply.github.com>
AuthorDate: Thu Apr 25 15:28:03 2024 +0530

HBASE-28517 Make properties dynamically configured (#5823)

Signed-off-by: Duo Zhang 
Signed-off-by: Peter Somogyi 
(cherry picked from commit 7122da5978a558b8d1d31c5a20b95167f8bfbf8b)
---
 .../apache/hadoop/hbase/io/hfile/CacheConfig.java| 19 ---
 .../org/apache/hadoop/hbase/regionserver/HStore.java |  5 -
 .../apache/hadoop/hbase/regionserver/TestHStore.java | 20 
 3 files changed, 40 insertions(+), 4 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
index 0f77e329b97..34c97ee64da 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.io.hfile;
 import java.util.Optional;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.conf.ConfigurationObserver;
 import org.apache.hadoop.hbase.io.ByteBuffAllocator;
 import org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -30,7 +31,7 @@ import org.slf4j.LoggerFactory;
  * Stores all of the cache objects and configuration for a single HFile.
  */
 @InterfaceAudience.Private
-public class CacheConfig {
+public class CacheConfig implements ConfigurationObserver {
   private static final Logger LOG = 
LoggerFactory.getLogger(CacheConfig.class.getName());
 
   /**
@@ -117,13 +118,13 @@ public class CacheConfig {
* turned off on a per-family or per-request basis). If off we will STILL 
cache meta blocks; i.e.
* INDEX and BLOOM types. This cannot be disabled.
*/
-  private final boolean cacheDataOnRead;
+  private volatile boolean cacheDataOnRead;
 
   /** Whether blocks should be flagged as in-memory when being cached */
   private final boolean inMemory;
 
   /** Whether data blocks should be cached when new files are written */
-  private boolean cacheDataOnWrite;
+  private volatile boolean cacheDataOnWrite;
 
   /** Whether index blocks should be cached when new files are written */
   private boolean cacheIndexesOnWrite;
@@ -436,4 +437,16 @@ public class CacheConfig {
   + shouldEvictOnClose() + ", cacheDataCompressed=" + 
shouldCacheDataCompressed()
   + ", prefetchOnOpen=" + shouldPrefetchOnOpen();
   }
+
+  @Override
+  public void onConfigurationChange(Configuration conf) {
+cacheDataOnRead = conf.getBoolean(CACHE_DATA_ON_READ_KEY, 
DEFAULT_CACHE_DATA_ON_READ);
+cacheDataOnWrite = conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, 
DEFAULT_CACHE_DATA_ON_WRITE);
+evictOnClose = conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, 
DEFAULT_EVICT_ON_CLOSE);
+LOG.info(
+  "Config hbase.block.data.cacheonread is changed to {}, "
++ "hbase.rs.cacheblocksonwrite is changed to {}, "
++ "hbase.rs.evictblocksonclose is changed to {}",
+  cacheDataOnRead, cacheDataOnWrite, evictOnClose);
+  }
 }
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 39117f45457..4b42f12b82f 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
@@ -2185,7 +2185,10 @@ public class HStore
*/
   @Override
   public void registerChildren(ConfigurationManager manager) {
-// No children to register
+CacheConfig cacheConfig = this.storeContext.getCacheConf();
+if (cacheConfig != null) {
+  manager.registerObserver(cacheConfig);
+}
   }
 
   /**
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
index 86187172569..299e070acea 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
@@ -17,6 +17,12 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import static 
org.apache.hadoop.hbase.io.hfile.CacheConfig.CACHE_BLOCKS_ON_WRITE_KEY;
+import static 

(hbase) branch branch-2 updated: HBASE-28517 Make properties dynamically configured (#5823)

2024-04-25 Thread psomogyi
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-2 by this push:
 new 525373a4433 HBASE-28517 Make properties dynamically configured (#5823)
525373a4433 is described below

commit 525373a44337c0b3d55ad9d2834f3ec77230dc48
Author: Abhishek Kothalikar <99398985+kabhish...@users.noreply.github.com>
AuthorDate: Thu Apr 25 15:28:03 2024 +0530

HBASE-28517 Make properties dynamically configured (#5823)

Signed-off-by: Duo Zhang 
Signed-off-by: Peter Somogyi 
(cherry picked from commit 7122da5978a558b8d1d31c5a20b95167f8bfbf8b)
---
 .../apache/hadoop/hbase/io/hfile/CacheConfig.java| 19 ---
 .../org/apache/hadoop/hbase/regionserver/HStore.java |  5 -
 .../apache/hadoop/hbase/regionserver/TestHStore.java | 20 
 3 files changed, 40 insertions(+), 4 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
index 0ba92da35c2..7fb1f1ec85b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.io.hfile;
 import java.util.Optional;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.conf.ConfigurationObserver;
 import org.apache.hadoop.hbase.io.ByteBuffAllocator;
 import org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -30,7 +31,7 @@ import org.slf4j.LoggerFactory;
  * Stores all of the cache objects and configuration for a single HFile.
  */
 @InterfaceAudience.Private
-public class CacheConfig {
+public class CacheConfig implements ConfigurationObserver {
   private static final Logger LOG = 
LoggerFactory.getLogger(CacheConfig.class.getName());
 
   /**
@@ -124,13 +125,13 @@ public class CacheConfig {
* turned off on a per-family or per-request basis). If off we will STILL 
cache meta blocks; i.e.
* INDEX and BLOOM types. This cannot be disabled.
*/
-  private final boolean cacheDataOnRead;
+  private volatile boolean cacheDataOnRead;
 
   /** Whether blocks should be flagged as in-memory when being cached */
   private final boolean inMemory;
 
   /** Whether data blocks should be cached when new files are written */
-  private boolean cacheDataOnWrite;
+  private volatile boolean cacheDataOnWrite;
 
   /** Whether index blocks should be cached when new files are written */
   private boolean cacheIndexesOnWrite;
@@ -464,4 +465,16 @@ public class CacheConfig {
   + shouldEvictOnClose() + ", cacheDataCompressed=" + 
shouldCacheDataCompressed()
   + ", prefetchOnOpen=" + shouldPrefetchOnOpen();
   }
+
+  @Override
+  public void onConfigurationChange(Configuration conf) {
+cacheDataOnRead = conf.getBoolean(CACHE_DATA_ON_READ_KEY, 
DEFAULT_CACHE_DATA_ON_READ);
+cacheDataOnWrite = conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, 
DEFAULT_CACHE_DATA_ON_WRITE);
+evictOnClose = conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, 
DEFAULT_EVICT_ON_CLOSE);
+LOG.info(
+  "Config hbase.block.data.cacheonread is changed to {}, "
++ "hbase.rs.cacheblocksonwrite is changed to {}, "
++ "hbase.rs.evictblocksonclose is changed to {}",
+  cacheDataOnRead, cacheDataOnWrite, evictOnClose);
+  }
 }
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 39117f45457..4b42f12b82f 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
@@ -2185,7 +2185,10 @@ public class HStore
*/
   @Override
   public void registerChildren(ConfigurationManager manager) {
-// No children to register
+CacheConfig cacheConfig = this.storeContext.getCacheConf();
+if (cacheConfig != null) {
+  manager.registerObserver(cacheConfig);
+}
   }
 
   /**
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
index 86187172569..299e070acea 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
@@ -17,6 +17,12 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import static 
org.apache.hadoop.hbase.io.hfile.CacheConfig.CACHE_BLOCKS_ON_WRITE_KEY;
+import static 
org.apache.hadoop.hbase.io.hfile.CacheConfig.CACHE_DATA_ON_READ_KEY;

(hbase) branch branch-3 updated: HBASE-28517 Make properties dynamically configured (#5823)

2024-04-25 Thread psomogyi
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/branch-3 by this push:
 new 7a1bedf698c HBASE-28517 Make properties dynamically configured (#5823)
7a1bedf698c is described below

commit 7a1bedf698c6da32a112d165ecdc1ac55cab7501
Author: Abhishek Kothalikar <99398985+kabhish...@users.noreply.github.com>
AuthorDate: Thu Apr 25 15:28:03 2024 +0530

HBASE-28517 Make properties dynamically configured (#5823)

Signed-off-by: Duo Zhang 
Signed-off-by: Peter Somogyi 
(cherry picked from commit 7122da5978a558b8d1d31c5a20b95167f8bfbf8b)
---
 .../apache/hadoop/hbase/io/hfile/CacheConfig.java   | 21 +
 .../apache/hadoop/hbase/regionserver/HStore.java|  5 -
 .../hadoop/hbase/regionserver/TestHStore.java   | 20 
 3 files changed, 41 insertions(+), 5 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
index f89a6194cef..7fb1f1ec85b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.io.hfile;
 import java.util.Optional;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.conf.ConfigurationObserver;
 import org.apache.hadoop.hbase.io.ByteBuffAllocator;
 import org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -30,7 +31,7 @@ import org.slf4j.LoggerFactory;
  * Stores all of the cache objects and configuration for a single HFile.
  */
 @InterfaceAudience.Private
-public class CacheConfig {
+public class CacheConfig implements ConfigurationObserver {
   private static final Logger LOG = 
LoggerFactory.getLogger(CacheConfig.class.getName());
 
   /**
@@ -124,13 +125,13 @@ public class CacheConfig {
* turned off on a per-family or per-request basis). If off we will STILL 
cache meta blocks; i.e.
* INDEX and BLOOM types. This cannot be disabled.
*/
-  private final boolean cacheDataOnRead;
+  private volatile boolean cacheDataOnRead;
 
   /** Whether blocks should be flagged as in-memory when being cached */
   private final boolean inMemory;
 
   /** Whether data blocks should be cached when new files are written */
-  private boolean cacheDataOnWrite;
+  private volatile boolean cacheDataOnWrite;
 
   /** Whether index blocks should be cached when new files are written */
   private boolean cacheIndexesOnWrite;
@@ -139,7 +140,7 @@ public class CacheConfig {
   private boolean cacheBloomsOnWrite;
 
   /** Whether blocks of a file should be evicted when the file is closed */
-  private boolean evictOnClose;
+  private volatile boolean evictOnClose;
 
   /** Whether data blocks should be stored in compressed and/or encrypted form 
in the cache */
   private final boolean cacheDataCompressed;
@@ -464,4 +465,16 @@ public class CacheConfig {
   + shouldEvictOnClose() + ", cacheDataCompressed=" + 
shouldCacheDataCompressed()
   + ", prefetchOnOpen=" + shouldPrefetchOnOpen();
   }
+
+  @Override
+  public void onConfigurationChange(Configuration conf) {
+cacheDataOnRead = conf.getBoolean(CACHE_DATA_ON_READ_KEY, 
DEFAULT_CACHE_DATA_ON_READ);
+cacheDataOnWrite = conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, 
DEFAULT_CACHE_DATA_ON_WRITE);
+evictOnClose = conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, 
DEFAULT_EVICT_ON_CLOSE);
+LOG.info(
+  "Config hbase.block.data.cacheonread is changed to {}, "
++ "hbase.rs.cacheblocksonwrite is changed to {}, "
++ "hbase.rs.evictblocksonclose is changed to {}",
+  cacheDataOnRead, cacheDataOnWrite, evictOnClose);
+  }
 }
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 43a63359961..9954c78142e 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
@@ -2186,7 +2186,10 @@ public class HStore
*/
   @Override
   public void registerChildren(ConfigurationManager manager) {
-// No children to register
+CacheConfig cacheConfig = this.storeContext.getCacheConf();
+if (cacheConfig != null) {
+  manager.registerObserver(cacheConfig);
+}
   }
 
   /**
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
index 2e999dfaa45..e888639eac4 100644
--- 

(hbase) branch HBASE-28463 updated (bfef12af56d -> f890281bf90)

2024-04-25 Thread wchevreuil
This is an automated email from the ASF dual-hosted git repository.

wchevreuil pushed a change to branch HBASE-28463
in repository https://gitbox.apache.org/repos/asf/hbase.git


 discard bfef12af56d HBASE-28468: Integrate the data-tiering logic into cache 
evictions. (#5829)
omit a2321ce9d82 HBASE-28466 Integration of time-based priority logic of 
bucket cache in prefetch functionality of HBase (#5808)
omit c1ea6520f3c HBASE-28505 Implement enforcement to require Date Tiered 
Compaction for Time Range Data Tiering (#5809)
omit 481a77da447 HBASE-28465 Implementation of framework for time-based 
priority bucket-cache (#5793)
 add e3761baec11 HBASE-28436 Use connection url to specify the connection 
registry information (#5770)
 add 6c6e776eea6 HBASE-28529 Use ZKClientConfig instead of system 
properties when setting zookeeper configurations (#5835)
 add 7122da5978a HBASE-28517 Make properties dynamically configured (#5823)
 new faada98341f HBASE-28465 Implementation of framework for time-based 
priority bucket-cache (#5793)
 new 9572f7d8d87 HBASE-28505 Implement enforcement to require Date Tiered 
Compaction for Time Range Data Tiering (#5809)
 new 84fc9acc224 HBASE-28466 Integration of time-based priority logic of 
bucket cache in prefetch functionality of HBase (#5808)
 new f890281bf90 HBASE-28468: Integrate the data-tiering logic into cache 
evictions. (#5829)

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (bfef12af56d)
\
 N -- N -- N   refs/heads/HBASE-28463 (f890281bf90)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 hbase-client/pom.xml   |   5 +
 .../hadoop/hbase/client/ConnectionFactory.java | 313 +
 .../hbase/client/ConnectionRegistryFactory.java|  64 -
 .../hbase/client/ConnectionRegistryURIFactory.java |  26 +-
 .../client/RpcConnectionRegistryCreator.java}  |  40 +--
 .../hbase/client/ZKConnectionRegistryCreator.java} |  43 ++-
 .../hadoop/hbase/zookeeper/ReadOnlyZKClient.java   |  13 +-
 ...adoop.hbase.client.ConnectionRegistryURIFactory |   3 +-
 .../TestConnectionRegistryCreatorUriParsing.java   | 157 +++
 .../apache/hadoop/hbase/zookeeper/ZKConfig.java|  29 +-
 .../hadoop/hbase/zookeeper/TestZKConfig.java   |  47 +---
 .../hbase/client/ClusterConnectionFactory.java |   2 +-
 .../apache/hadoop/hbase/io/hfile/CacheConfig.java  |  21 +-
 .../apache/hadoop/hbase/regionserver/HStore.java   |   5 +-
 .../hbase/client/AbstractTestRegionLocator.java|   2 +-
 .../client/TestAsyncAdminWithRegionReplicas.java   |   2 +-
 .../hbase/client/TestAsyncMetaRegionLocator.java   |   3 +-
 .../client/TestAsyncNonMetaRegionLocator.java  |   2 +-
 ...stAsyncNonMetaRegionLocatorConcurrenyLimit.java |   2 +-
 .../hbase/client/TestAsyncRegionLocator.java   |   2 +-
 .../TestAsyncSingleRequestRpcRetryingCaller.java   |   2 +-
 .../client/TestAsyncTableUseMetaReplicas.java  |   3 +-
 ...ReadWriteWithDifferentConnectionRegistries.java | 177 
 ...estCatalogReplicaLoadBalanceSimpleSelector.java |   3 +-
 .../hbase/client/TestMetaRegionLocationCache.java  |   3 +-
 .../hadoop/hbase/regionserver/TestHStore.java  |  20 ++
 .../hbase/zookeeper/RecoverableZooKeeper.java  |  75 +++--
 .../apache/hadoop/hbase/zookeeper/ZKWatcher.java   |   4 +-
 .../hbase/zookeeper/TestRecoverableZooKeeper.java  |   2 +-
 29 files changed, 820 insertions(+), 250 deletions(-)
 copy 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/NoRegionSplitRestriction.java
 => 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionRegistryURIFactory.java
 (63%)
 copy 
hbase-client/src/{test/java/org/apache/hadoop/hbase/client/DoNothingConnectionRegistry.java
 => main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistryCreator.java} 
(55%)
 copy 
hbase-client/src/{test/java/org/apache/hadoop/hbase/client/DoNothingConnectionRegistry.java
 => main/java/org/apache/hadoop/hbase/client/ZKConnectionRegistryCreator.java} 
(52%)
 copy 
hbase-it/src/test/resources/META-INF/services/javax.ws.rs.client.ClientBuilder 
=> 

(hbase) 01/04: HBASE-28465 Implementation of framework for time-based priority bucket-cache (#5793)

2024-04-25 Thread wchevreuil
This is an automated email from the ASF dual-hosted git repository.

wchevreuil pushed a commit to branch HBASE-28463
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit faada98341f0004aa6bc7f1f56b5e968df8d95c0
Author: vinayak hegde 
AuthorDate: Mon Apr 8 20:54:19 2024 +0530

HBASE-28465 Implementation of framework for time-based priority 
bucket-cache (#5793)

Signed-off-by: Wellington Chevreuil 
---
 .../hbase/regionserver/DataTieringException.java   |  27 ++
 .../hbase/regionserver/DataTieringManager.java | 222 
 .../hadoop/hbase/regionserver/DataTieringType.java |  26 ++
 .../hadoop/hbase/regionserver/HRegionServer.java   |   1 +
 .../hbase/regionserver/TestDataTieringManager.java | 389 +
 5 files changed, 665 insertions(+)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringException.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringException.java
new file mode 100644
index 000..8d356422f6e
--- /dev/null
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringException.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.regionserver;
+
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
+public class DataTieringException extends Exception {
+  DataTieringException(String reason) {
+super(reason);
+  }
+}
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringManager.java
new file mode 100644
index 000..0bc04ddc428
--- /dev/null
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringManager.java
@@ -0,0 +1,222 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.regionserver;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.OptionalLong;
+import java.util.Set;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The DataTieringManager class categorizes data into hot data and cold data 
based on the specified
+ * {@link DataTieringType} when DataTiering is enabled. DataTiering is 
disabled by default with
+ * {@link DataTieringType} set to {@link DataTieringType#NONE}. The {@link 
DataTieringType}
+ * determines the logic for distinguishing data into hot or cold. By default, 
all data is considered
+ * as hot.
+ */
+@InterfaceAudience.Private
+public class DataTieringManager {
+  private static final Logger LOG = 
LoggerFactory.getLogger(DataTieringManager.class);
+  public static final String DATATIERING_KEY = "hbase.hstore.datatiering.type";
+  public static final String DATATIERING_HOT_DATA_AGE_KEY =
+"hbase.hstore.datatiering.hot.age.millis";
+  public static final DataTieringType DEFAULT_DATATIERING = 
DataTieringType.NONE;
+  public static final long DEFAULT_DATATIERING_HOT_DATA_AGE = 7 * 24 * 60 * 60 
* 1000; // 7 Days
+  private static DataTieringManager instance;
+  private final Map onlineRegions;
+
+  

(hbase) 02/04: HBASE-28505 Implement enforcement to require Date Tiered Compaction for Time Range Data Tiering (#5809)

2024-04-25 Thread wchevreuil
This is an automated email from the ASF dual-hosted git repository.

wchevreuil pushed a commit to branch HBASE-28463
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 9572f7d8d87fde9b61ac2c7b54d75a0b3328bf4c
Author: vinayak hegde 
AuthorDate: Fri Apr 12 14:54:37 2024 +0530

HBASE-28505 Implement enforcement to require Date Tiered Compaction for 
Time Range Data Tiering (#5809)


Signed-off-by: Wellington Chevreuil 
---
 .../hbase/regionserver/DateTieredStoreEngine.java  |  3 ++
 .../hadoop/hbase/util/TableDescriptorChecker.java  | 36 +
 .../hbase/client/TestIllegalTableDescriptor.java   | 45 ++
 3 files changed, 84 insertions(+)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DateTieredStoreEngine.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DateTieredStoreEngine.java
index d15a6c92ef0..8fdbb6035ae 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DateTieredStoreEngine.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DateTieredStoreEngine.java
@@ -41,6 +41,9 @@ import org.apache.yetus.audience.InterfaceAudience;
 @InterfaceAudience.Private
 public class DateTieredStoreEngine extends StoreEngine {
+
+  public static final String DATE_TIERED_STORE_ENGINE = 
DateTieredStoreEngine.class.getName();
+
   @Override
   public boolean needsCompaction(List filesCompacting) {
 return compactionPolicy.needsCompaction(storeFileManager.getStorefiles(), 
filesCompacting);
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/TableDescriptorChecker.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/TableDescriptorChecker.java
index 94e2e4bbfa0..471583b32b7 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/TableDescriptorChecker.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/TableDescriptorChecker.java
@@ -17,6 +17,8 @@
  */
 package org.apache.hadoop.hbase.util;
 
+import static 
org.apache.hadoop.hbase.regionserver.DateTieredStoreEngine.DATE_TIERED_STORE_ENGINE;
+
 import java.io.IOException;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.CompoundConfiguration;
@@ -28,10 +30,13 @@ import 
org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.TableDescriptor;
 import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.fs.ErasureCodingUtils;
+import org.apache.hadoop.hbase.regionserver.DataTieringManager;
+import org.apache.hadoop.hbase.regionserver.DataTieringType;
 import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;
 import org.apache.hadoop.hbase.regionserver.HStore;
 import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost;
 import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;
+import org.apache.hadoop.hbase.regionserver.StoreEngine;
 import 
org.apache.hadoop.hbase.regionserver.compactions.ExploringCompactionPolicy;
 import org.apache.hadoop.hbase.regionserver.compactions.FIFOCompactionPolicy;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -191,6 +196,8 @@ public final class TableDescriptorChecker {
 
   // check in-memory compaction
   warnOrThrowExceptionForFailure(logWarn, hcd::getInMemoryCompaction);
+
+  checkDateTieredCompactionForTimeRangeDataTiering(conf, td);
 }
   }
 
@@ -210,6 +217,35 @@ public final class TableDescriptorChecker {
 });
   }
 
+  private static void checkDateTieredCompactionForTimeRangeDataTiering(final 
Configuration conf,
+final TableDescriptor td) throws IOException {
+// Table level configurations
+checkDateTieredCompactionForTimeRangeDataTiering(conf);
+for (ColumnFamilyDescriptor cfd : td.getColumnFamilies()) {
+  // Column family level configurations
+  Configuration cfdConf =
+new 
CompoundConfiguration().add(conf).addStringMap(cfd.getConfiguration());
+  checkDateTieredCompactionForTimeRangeDataTiering(cfdConf);
+}
+  }
+
+  private static void checkDateTieredCompactionForTimeRangeDataTiering(final 
Configuration conf)
+throws IOException {
+final String errorMessage =
+  "Time Range Data Tiering should be enabled with Date Tiered Compaction.";
+
+warnOrThrowExceptionForFailure(false, () -> {
+
+  // Determine whether Date Tiered Compaction will be enabled when Time 
Range Data Tiering is
+  // enabled after the configuration change.
+  if 
(DataTieringType.TIME_RANGE.name().equals(conf.get(DataTieringManager.DATATIERING_KEY)))
 {
+if 
(!DATE_TIERED_STORE_ENGINE.equals(conf.get(StoreEngine.STORE_ENGINE_CLASS_KEY)))
 {
+  throw new IllegalArgumentException(errorMessage);
+}
+  }
+});
+  }
+
   private static void checkCompactionPolicy(final Configuration conf, final 
TableDescriptor td)
 throws IOException {
 warnOrThrowExceptionForFailure(false, () -> 

(hbase) 04/04: HBASE-28468: Integrate the data-tiering logic into cache evictions. (#5829)

2024-04-25 Thread wchevreuil
This is an automated email from the ASF dual-hosted git repository.

wchevreuil pushed a commit to branch HBASE-28463
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit f890281bf9096b10ef87ad73a6206f51507b1fdc
Author: jhungund <106576553+jhung...@users.noreply.github.com>
AuthorDate: Thu Apr 25 15:29:36 2024 +0530

HBASE-28468: Integrate the data-tiering logic into cache evictions. (#5829)

Signed-off-by: Wellington Chevreuil 
---
 .../hadoop/hbase/io/hfile/bucket/BucketCache.java  |  45 +-
 .../hbase/regionserver/DataTieringManager.java |  42 -
 .../apache/hadoop/hbase/io/hfile/TestPrefetch.java |   4 +-
 .../hbase/regionserver/TestDataTieringManager.java | 178 +
 4 files changed, 263 insertions(+), 6 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
index 622a57f91c2..5a9c7795a33 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
@@ -974,6 +974,7 @@ public class BucketCache implements BlockCache, HeapSize {
   long bytesToFreeWithExtra =
 (long) Math.floor(bytesToFreeWithoutExtra * (1 + extraFreeFactor));
 
+  long bytesFreed = 0;
   // Instantiate priority buckets
   BucketEntryGroup bucketSingle =
 new BucketEntryGroup(bytesToFreeWithExtra, blockSize, 
getPartitionSize(singleFactor));
@@ -982,9 +983,36 @@ public class BucketCache implements BlockCache, HeapSize {
   BucketEntryGroup bucketMemory =
 new BucketEntryGroup(bytesToFreeWithExtra, blockSize, 
getPartitionSize(memoryFactor));
 
+  // Check the list of files to determine the cold files which can be 
readily evicted.
+  Map coldFiles = null;
+  try {
+DataTieringManager dataTieringManager = 
DataTieringManager.getInstance();
+coldFiles = dataTieringManager.getColdFilesList();
+  } catch (IllegalStateException e) {
+LOG.warn("Data Tiering Manager is not set. Ignore time-based block 
evictions.");
+  }
   // Scan entire map putting bucket entry into appropriate bucket entry
   // group
   for (Map.Entry bucketEntryWithKey : 
backingMap.entrySet()) {
+if (
+  coldFiles != null && 
coldFiles.containsKey(bucketEntryWithKey.getKey().getHfileName())
+) {
+  int freedBlockSize = bucketEntryWithKey.getValue().getLength();
+  if (evictBlockIfNoRpcReferenced(bucketEntryWithKey.getKey())) {
+bytesFreed += freedBlockSize;
+  }
+  if (bytesFreed >= bytesToFreeWithExtra) {
+if (LOG.isDebugEnabled()) {
+  LOG.debug(
+"Bucket cache free space completed; required: {} freed: {} 
from cold data blocks.",
+bytesToFreeWithExtra, StringUtils.byteDesc(bytesFreed));
+}
+// Sufficient bytes have been freed.
+return;
+  }
+  continue;
+}
+
 switch (bucketEntryWithKey.getValue().getPriority()) {
   case SINGLE: {
 bucketSingle.add(bucketEntryWithKey);
@@ -1001,6 +1029,21 @@ public class BucketCache implements BlockCache, HeapSize 
{
 }
   }
 
+  // Check if the cold file eviction is sufficient to create enough space.
+  bytesToFreeWithExtra -= bytesFreed;
+  if (bytesToFreeWithExtra <= 0) {
+LOG.debug("Bucket cache free space completed; freed space : {} bytes 
of cold data blocks.",
+  StringUtils.byteDesc(bytesFreed));
+return;
+  }
+
+  if (LOG.isDebugEnabled()) {
+LOG.debug(
+  "Bucket cache free space completed; freed space : {} "
++ "bytes of cold data blocks. {} more bytes required to be freed.",
+  StringUtils.byteDesc(bytesFreed), bytesToFreeWithExtra);
+  }
+
   PriorityQueue bucketQueue =
 new PriorityQueue<>(3, 
Comparator.comparingLong(BucketEntryGroup::overflow));
 
@@ -1009,8 +1052,6 @@ public class BucketCache implements BlockCache, HeapSize {
   bucketQueue.add(bucketMemory);
 
   int remainingBuckets = bucketQueue.size();
-  long bytesFreed = 0;
-
   BucketEntryGroup bucketGroup;
   while ((bucketGroup = bucketQueue.poll()) != null) {
 long overflow = bucketGroup.overflow();
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringManager.java
index dec96604774..6c699e77c2f 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringManager.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.regionserver;
 import static 

(hbase) 03/04: HBASE-28466 Integration of time-based priority logic of bucket cache in prefetch functionality of HBase (#5808)

2024-04-25 Thread wchevreuil
This is an automated email from the ASF dual-hosted git repository.

wchevreuil pushed a commit to branch HBASE-28463
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 84fc9acc2248d000bee6bada3925fa5800a00184
Author: vinayak hegde 
AuthorDate: Mon Apr 22 15:23:30 2024 +0530

HBASE-28466 Integration of time-based priority logic of bucket cache in 
prefetch functionality of HBase (#5808)

Signed-off-by: Wellington Chevreuil 
---
 .../apache/hadoop/hbase/io/hfile/BlockCache.java   |  6 +-
 .../hadoop/hbase/io/hfile/CombinedBlockCache.java  |  7 +-
 .../apache/hadoop/hbase/io/hfile/HFileInfo.java|  6 ++
 .../hadoop/hbase/io/hfile/HFilePreadReader.java|  6 +-
 .../hadoop/hbase/io/hfile/bucket/BucketCache.java  | 15 +++-
 .../hbase/regionserver/DataTieringManager.java | 91 +-
 .../hbase/regionserver/TestDataTieringManager.java | 58 ++
 7 files changed, 145 insertions(+), 44 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockCache.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockCache.java
index bed0194b1fa..ac83af1053a 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockCache.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockCache.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.io.hfile;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Optional;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.util.Pair;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -197,11 +198,12 @@ public interface BlockCache extends Iterable 
{
* overridden by all implementing classes. In such cases, the returned 
Optional will be empty. For
* subclasses implementing this logic, the returned Optional would contain 
the boolean value
* reflecting if the passed file should indeed be cached.
-   * @param fileName to check if it should be cached.
+   * @param hFileInfo Information about the file to check if it should be 
cached.
+   * @param conf  The configuration object to use for determining caching 
behavior.
* @return empty optional if this method is not supported, otherwise the 
returned optional
* contains the boolean value informing if the file should be cached.
*/
-  default Optional shouldCacheFile(String fileName) {
+  default Optional shouldCacheFile(HFileInfo hFileInfo, Configuration 
conf) {
 return Optional.empty();
   }
 
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.java
index d6692d2e2bf..b12510cdccd 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.java
@@ -22,6 +22,7 @@ import java.util.Map;
 import java.util.Optional;
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.commons.lang3.mutable.MutableBoolean;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.io.HeapSize;
 import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache;
@@ -482,9 +483,9 @@ public class CombinedBlockCache implements 
ResizableBlockCache, HeapSize {
   }
 
   @Override
-  public Optional shouldCacheFile(String fileName) {
-Optional l1Result = l1Cache.shouldCacheFile(fileName);
-Optional l2Result = l2Cache.shouldCacheFile(fileName);
+  public Optional shouldCacheFile(HFileInfo hFileInfo, Configuration 
conf) {
+Optional l1Result = l1Cache.shouldCacheFile(hFileInfo, conf);
+Optional l2Result = l2Cache.shouldCacheFile(hFileInfo, conf);
 final Mutable combinedResult = new MutableBoolean(true);
 l1Result.ifPresent(b -> combinedResult.setValue(b && 
combinedResult.getValue()));
 l2Result.ifPresent(b -> combinedResult.setValue(b && 
combinedResult.getValue()));
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileInfo.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileInfo.java
index 31e637a0099..e89f86e7c4e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileInfo.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileInfo.java
@@ -122,6 +122,7 @@ public class HFileInfo implements SortedMap 
{
 
   private FixedFileTrailer trailer;
   private HFileContext hfileContext;
+  private boolean initialized = false;
 
   public HFileInfo() {
 super();
@@ -363,6 +364,10 @@ public class HFileInfo implements SortedMap {
* should be called after initTrailerAndContext
*/
   public void initMetaAndIndex(HFile.Reader reader) throws IOException {
+if (initialized) {
+  return;
+}
+
 ReaderContext context = reader.getContext();
 try {
   

(hbase) branch HBASE-28463 updated: HBASE-28468: Integrate the data-tiering logic into cache evictions. (#5829)

2024-04-25 Thread wchevreuil
This is an automated email from the ASF dual-hosted git repository.

wchevreuil pushed a commit to branch HBASE-28463
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/HBASE-28463 by this push:
 new bfef12af56d HBASE-28468: Integrate the data-tiering logic into cache 
evictions. (#5829)
bfef12af56d is described below

commit bfef12af56d6a5091dad776c5c3b4daa73172b2a
Author: jhungund <106576553+jhung...@users.noreply.github.com>
AuthorDate: Thu Apr 25 15:29:36 2024 +0530

HBASE-28468: Integrate the data-tiering logic into cache evictions. (#5829)

Signed-off-by: Wellington Chevreuil 
---
 .../hadoop/hbase/io/hfile/bucket/BucketCache.java  |  45 +-
 .../hbase/regionserver/DataTieringManager.java |  42 -
 .../apache/hadoop/hbase/io/hfile/TestPrefetch.java |   4 +-
 .../hbase/regionserver/TestDataTieringManager.java | 178 +
 4 files changed, 263 insertions(+), 6 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
index 622a57f91c2..5a9c7795a33 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
@@ -974,6 +974,7 @@ public class BucketCache implements BlockCache, HeapSize {
   long bytesToFreeWithExtra =
 (long) Math.floor(bytesToFreeWithoutExtra * (1 + extraFreeFactor));
 
+  long bytesFreed = 0;
   // Instantiate priority buckets
   BucketEntryGroup bucketSingle =
 new BucketEntryGroup(bytesToFreeWithExtra, blockSize, 
getPartitionSize(singleFactor));
@@ -982,9 +983,36 @@ public class BucketCache implements BlockCache, HeapSize {
   BucketEntryGroup bucketMemory =
 new BucketEntryGroup(bytesToFreeWithExtra, blockSize, 
getPartitionSize(memoryFactor));
 
+  // Check the list of files to determine the cold files which can be 
readily evicted.
+  Map coldFiles = null;
+  try {
+DataTieringManager dataTieringManager = 
DataTieringManager.getInstance();
+coldFiles = dataTieringManager.getColdFilesList();
+  } catch (IllegalStateException e) {
+LOG.warn("Data Tiering Manager is not set. Ignore time-based block 
evictions.");
+  }
   // Scan entire map putting bucket entry into appropriate bucket entry
   // group
   for (Map.Entry bucketEntryWithKey : 
backingMap.entrySet()) {
+if (
+  coldFiles != null && 
coldFiles.containsKey(bucketEntryWithKey.getKey().getHfileName())
+) {
+  int freedBlockSize = bucketEntryWithKey.getValue().getLength();
+  if (evictBlockIfNoRpcReferenced(bucketEntryWithKey.getKey())) {
+bytesFreed += freedBlockSize;
+  }
+  if (bytesFreed >= bytesToFreeWithExtra) {
+if (LOG.isDebugEnabled()) {
+  LOG.debug(
+"Bucket cache free space completed; required: {} freed: {} 
from cold data blocks.",
+bytesToFreeWithExtra, StringUtils.byteDesc(bytesFreed));
+}
+// Sufficient bytes have been freed.
+return;
+  }
+  continue;
+}
+
 switch (bucketEntryWithKey.getValue().getPriority()) {
   case SINGLE: {
 bucketSingle.add(bucketEntryWithKey);
@@ -1001,6 +1029,21 @@ public class BucketCache implements BlockCache, HeapSize 
{
 }
   }
 
+  // Check if the cold file eviction is sufficient to create enough space.
+  bytesToFreeWithExtra -= bytesFreed;
+  if (bytesToFreeWithExtra <= 0) {
+LOG.debug("Bucket cache free space completed; freed space : {} bytes 
of cold data blocks.",
+  StringUtils.byteDesc(bytesFreed));
+return;
+  }
+
+  if (LOG.isDebugEnabled()) {
+LOG.debug(
+  "Bucket cache free space completed; freed space : {} "
++ "bytes of cold data blocks. {} more bytes required to be freed.",
+  StringUtils.byteDesc(bytesFreed), bytesToFreeWithExtra);
+  }
+
   PriorityQueue bucketQueue =
 new PriorityQueue<>(3, 
Comparator.comparingLong(BucketEntryGroup::overflow));
 
@@ -1009,8 +1052,6 @@ public class BucketCache implements BlockCache, HeapSize {
   bucketQueue.add(bucketMemory);
 
   int remainingBuckets = bucketQueue.size();
-  long bytesFreed = 0;
-
   BucketEntryGroup bucketGroup;
   while ((bucketGroup = bucketQueue.poll()) != null) {
 long overflow = bucketGroup.overflow();
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DataTieringManager.java
index dec96604774..6c699e77c2f 100644
--- 

(hbase) branch master updated: HBASE-28517 Make properties dynamically configured (#5823)

2024-04-25 Thread psomogyi
This is an automated email from the ASF dual-hosted git repository.

psomogyi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
 new 7122da5978a HBASE-28517 Make properties dynamically configured (#5823)
7122da5978a is described below

commit 7122da5978a558b8d1d31c5a20b95167f8bfbf8b
Author: Abhishek Kothalikar <99398985+kabhish...@users.noreply.github.com>
AuthorDate: Thu Apr 25 15:28:03 2024 +0530

HBASE-28517 Make properties dynamically configured (#5823)

Signed-off-by: Duo Zhang 
Signed-off-by: Peter Somogyi 
---
 .../apache/hadoop/hbase/io/hfile/CacheConfig.java   | 21 +
 .../apache/hadoop/hbase/regionserver/HStore.java|  5 -
 .../hadoop/hbase/regionserver/TestHStore.java   | 20 
 3 files changed, 41 insertions(+), 5 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
index f89a6194cef..7fb1f1ec85b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.io.hfile;
 import java.util.Optional;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.conf.ConfigurationObserver;
 import org.apache.hadoop.hbase.io.ByteBuffAllocator;
 import org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -30,7 +31,7 @@ import org.slf4j.LoggerFactory;
  * Stores all of the cache objects and configuration for a single HFile.
  */
 @InterfaceAudience.Private
-public class CacheConfig {
+public class CacheConfig implements ConfigurationObserver {
   private static final Logger LOG = 
LoggerFactory.getLogger(CacheConfig.class.getName());
 
   /**
@@ -124,13 +125,13 @@ public class CacheConfig {
* turned off on a per-family or per-request basis). If off we will STILL 
cache meta blocks; i.e.
* INDEX and BLOOM types. This cannot be disabled.
*/
-  private final boolean cacheDataOnRead;
+  private volatile boolean cacheDataOnRead;
 
   /** Whether blocks should be flagged as in-memory when being cached */
   private final boolean inMemory;
 
   /** Whether data blocks should be cached when new files are written */
-  private boolean cacheDataOnWrite;
+  private volatile boolean cacheDataOnWrite;
 
   /** Whether index blocks should be cached when new files are written */
   private boolean cacheIndexesOnWrite;
@@ -139,7 +140,7 @@ public class CacheConfig {
   private boolean cacheBloomsOnWrite;
 
   /** Whether blocks of a file should be evicted when the file is closed */
-  private boolean evictOnClose;
+  private volatile boolean evictOnClose;
 
   /** Whether data blocks should be stored in compressed and/or encrypted form 
in the cache */
   private final boolean cacheDataCompressed;
@@ -464,4 +465,16 @@ public class CacheConfig {
   + shouldEvictOnClose() + ", cacheDataCompressed=" + 
shouldCacheDataCompressed()
   + ", prefetchOnOpen=" + shouldPrefetchOnOpen();
   }
+
+  @Override
+  public void onConfigurationChange(Configuration conf) {
+cacheDataOnRead = conf.getBoolean(CACHE_DATA_ON_READ_KEY, 
DEFAULT_CACHE_DATA_ON_READ);
+cacheDataOnWrite = conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, 
DEFAULT_CACHE_DATA_ON_WRITE);
+evictOnClose = conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, 
DEFAULT_EVICT_ON_CLOSE);
+LOG.info(
+  "Config hbase.block.data.cacheonread is changed to {}, "
++ "hbase.rs.cacheblocksonwrite is changed to {}, "
++ "hbase.rs.evictblocksonclose is changed to {}",
+  cacheDataOnRead, cacheDataOnWrite, evictOnClose);
+  }
 }
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 43a63359961..9954c78142e 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
@@ -2186,7 +2186,10 @@ public class HStore
*/
   @Override
   public void registerChildren(ConfigurationManager manager) {
-// No children to register
+CacheConfig cacheConfig = this.storeContext.getCacheConf();
+if (cacheConfig != null) {
+  manager.registerObserver(cacheConfig);
+}
   }
 
   /**
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
index 2e999dfaa45..e888639eac4 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java
+++