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 83698f7b2bb HBASE-28608 Correct client meta operation timeout to
default to client operation timeout (#6000)
83698f7b2bb is described below
commit 83698f7b2bb6016a9ae945f7ac9018fbb7b1866e
Author: droudnitsky <[email protected]>
AuthorDate: Thu Nov 21 09:32:22 2024 -0500
HBASE-28608 Correct client meta operation timeout to default to client
operation timeout (#6000)
Co-authored-by: Daniel Roudnitsky <[email protected]>
Signed-off-by: Duo Zhang <[email protected]>
(cherry picked from commit beb36e811cc60f2f9e7c613a94396a797b2b5ef5)
---
.../hbase/client/AsyncConnectionConfiguration.java | 9 ++---
.../hbase/client/ConnectionConfiguration.java | 3 +-
.../client/TestAsyncConnectionConfiguration.java | 14 +++++++-
...ation.java => TestConnectionConfiguration.java} | 40 ++++++----------------
4 files changed, 30 insertions(+), 36 deletions(-)
diff --git
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.java
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.java
index b269508f701..5dc9f6d3b41 100644
---
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.java
+++
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.java
@@ -149,10 +149,11 @@ class AsyncConnectionConfiguration {
private final int maxKeyValueSize;
AsyncConnectionConfiguration(Configuration conf) {
- this.metaOperationTimeoutNs = TimeUnit.MILLISECONDS.toNanos(
- conf.getLong(HBASE_CLIENT_META_OPERATION_TIMEOUT,
DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT));
- this.operationTimeoutNs = TimeUnit.MILLISECONDS.toNanos(
- conf.getLong(HBASE_CLIENT_OPERATION_TIMEOUT,
DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT));
+ long operationTimeoutMs =
+ conf.getLong(HBASE_CLIENT_OPERATION_TIMEOUT,
DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);
+ this.operationTimeoutNs =
TimeUnit.MILLISECONDS.toNanos(operationTimeoutMs);
+ this.metaOperationTimeoutNs = TimeUnit.MILLISECONDS
+ .toNanos(conf.getLong(HBASE_CLIENT_META_OPERATION_TIMEOUT,
operationTimeoutMs));
long rpcTimeoutMs = conf.getLong(HBASE_RPC_TIMEOUT_KEY,
DEFAULT_HBASE_RPC_TIMEOUT);
this.rpcTimeoutNs = TimeUnit.MILLISECONDS.toNanos(rpcTimeoutMs);
long readRpcTimeoutMillis = conf.getLong(HBASE_RPC_READ_TIMEOUT_KEY,
rpcTimeoutMs);
diff --git
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
index db7ef8e63c1..56f3a65c957 100644
---
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
+++
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
@@ -87,7 +87,8 @@ public class ConnectionConfiguration {
WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS,
WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS_DEFAULT);
this.metaOperationTimeout =
conf.getInt(HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT,
- HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);
+ conf.getInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,
+ HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT));
this.operationTimeout =
conf.getInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,
HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);
diff --git
a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
index 022cab91267..49f595a6945 100644
---
a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
+++
b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
@@ -32,7 +32,7 @@ import org.junit.Test;
import org.junit.experimental.categories.Category;
/**
- * See HBASE-24513.
+ * See HBASE-24513, HBASE-28608.
*/
@Category({ ClientTests.class, SmallTests.class })
public class TestAsyncConnectionConfiguration {
@@ -69,4 +69,16 @@ public class TestAsyncConnectionConfiguration {
assertEquals(expected, config.getReadRpcTimeoutNs());
assertEquals(expected, config.getWriteRpcTimeoutNs());
}
+
+ @Test
+ public void testDefaultMetaOperationTimeout() {
+ Configuration conf = HBaseConfiguration.create();
+ long timeoutMs = 1000;
+ conf.setLong(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, timeoutMs);
+ AsyncConnectionConfiguration config = new
AsyncConnectionConfiguration(conf);
+ long expected = TimeUnit.MILLISECONDS.toNanos(timeoutMs);
+ assertEquals(expected, config.getOperationTimeoutNs());
+ assertEquals(expected, config.getMetaOperationTimeoutNs());
+ }
+
}
diff --git
a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestConnectionConfiguration.java
similarity index 51%
copy from
hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
copy to
hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestConnectionConfiguration.java
index 022cab91267..9d2e467d3b1 100644
---
a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
+++
b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestConnectionConfiguration.java
@@ -18,9 +18,7 @@
package org.apache.hadoop.hbase.client;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import java.util.concurrent.TimeUnit;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseClassTestRule;
import org.apache.hadoop.hbase.HBaseConfiguration;
@@ -32,41 +30,23 @@ import org.junit.Test;
import org.junit.experimental.categories.Category;
/**
- * See HBASE-24513.
+ * See HBASE-28608. Configuration tests for (non async) connections
*/
@Category({ ClientTests.class, SmallTests.class })
-public class TestAsyncConnectionConfiguration {
+public class TestConnectionConfiguration {
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestAsyncConnectionConfiguration.class);
+ HBaseClassTestRule.forClass(TestConnectionConfiguration.class);
@Test
- public void itHandlesDeprecatedPauseForCQTBE() {
- Configuration conf = new Configuration();
- long timeoutMs = 1000;
- conf.setLong(HConstants.HBASE_CLIENT_PAUSE_FOR_CQTBE, timeoutMs);
- AsyncConnectionConfiguration config = new
AsyncConnectionConfiguration(conf);
-
-
assertTrue(Configuration.isDeprecated(HConstants.HBASE_CLIENT_PAUSE_FOR_CQTBE));
- long expected = TimeUnit.MILLISECONDS.toNanos(timeoutMs);
- assertEquals(expected, config.getPauseNsForServerOverloaded());
-
- conf = new Configuration();
-
conf.setLong(AsyncConnectionConfiguration.HBASE_CLIENT_PAUSE_FOR_SERVER_OVERLOADED,
timeoutMs);
- config = new AsyncConnectionConfiguration(conf);
- assertEquals(expected, config.getPauseNsForServerOverloaded());
- }
-
- @Test
- public void testDefaultReadWriteRpcTimeout() {
+ public void testDefaultMetaOperationTimeout() {
Configuration conf = HBaseConfiguration.create();
- long timeoutMs = 1000;
- conf.setLong(HConstants.HBASE_RPC_TIMEOUT_KEY, timeoutMs);
- AsyncConnectionConfiguration config = new
AsyncConnectionConfiguration(conf);
- long expected = TimeUnit.MILLISECONDS.toNanos(timeoutMs);
- assertEquals(expected, config.getRpcTimeoutNs());
- assertEquals(expected, config.getReadRpcTimeoutNs());
- assertEquals(expected, config.getWriteRpcTimeoutNs());
+ long clientOperationTimeoutMs = 1000;
+ conf.setLong(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,
clientOperationTimeoutMs);
+ ConnectionConfiguration config = new ConnectionConfiguration(conf);
+ assertEquals(clientOperationTimeoutMs, config.getOperationTimeout());
+ assertEquals(clientOperationTimeoutMs, config.getMetaOperationTimeout());
}
+
}