You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2015/04/09 06:44:16 UTC
hbase git commit: HBASE-13362 Set max result size from client only
(like scanner caching).
Repository: hbase
Updated Branches:
refs/heads/branch-1 c2bfddac1 -> 562859f4a
HBASE-13362 Set max result size from client only (like scanner caching).
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/562859f4
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/562859f4
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/562859f4
Branch: refs/heads/branch-1
Commit: 562859f4af621795d887788557b570f46f0d0af4
Parents: c2bfdda
Author: Lars Hofhansl <la...@apache.org>
Authored: Wed Apr 8 21:43:01 2015 -0700
Committer: Lars Hofhansl <la...@apache.org>
Committed: Wed Apr 8 21:43:22 2015 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hbase/HConstants.java | 25 ++++++++++++++++----
.../src/main/resources/hbase-default.xml | 10 ++++++++
.../hbase/regionserver/RSRpcServices.java | 4 ++--
3 files changed, 33 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/562859f4/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
index 4429d81..a607310 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
@@ -595,14 +595,21 @@ public final class HConstants {
*/
public static final UUID DEFAULT_CLUSTER_ID = new UUID(0L,0L);
- /**
- * Parameter name for maximum number of bytes returned when calling a
- * scanner's next method.
- */
+ /**
+ * Parameter name for maximum number of bytes returned when calling a scanner's next method.
+ * Controlled by the client.
+ */
public static final String HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE_KEY =
"hbase.client.scanner.max.result.size";
/**
+ * Parameter name for maximum number of bytes returned when calling a scanner's next method.
+ * Controlled by the server.
+ */
+ public static final String HBASE_SERVER_SCANNER_MAX_RESULT_SIZE_KEY =
+ "hbase.server.scanner.max.result.size";
+
+ /**
* Maximum number of bytes returned when calling a scanner's next method.
* Note that when a single row is larger than this limit the row is still
* returned completely.
@@ -612,6 +619,16 @@ public final class HConstants {
public static final long DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE = 2 * 1024 * 1024;
/**
+ * Maximum number of bytes returned when calling a scanner's next method.
+ * Note that when a single row is larger than this limit the row is still
+ * returned completely.
+ * Safety setting to protect the region server.
+ *
+ * The default value is 100MB. (a client would rarely request larger chunks on purpose)
+ */
+ public static final long DEFAULT_HBASE_SERVER_SCANNER_MAX_RESULT_SIZE = 100 * 1024 * 1024;
+
+ /**
* Parameter name for client pause value, used mostly as value to wait
* before running a retry of a failed get, region lookup, etc.
*/
http://git-wip-us.apache.org/repos/asf/hbase/blob/562859f4/hbase-common/src/main/resources/hbase-default.xml
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/resources/hbase-default.xml b/hbase-common/src/main/resources/hbase-default.xml
index db99f12..2edd3be 100644
--- a/hbase-common/src/main/resources/hbase-default.xml
+++ b/hbase-common/src/main/resources/hbase-default.xml
@@ -1196,6 +1196,16 @@ possible configurations would overwhelm and obscure the important.
</property>
<property>
+ <name>hbase.server.scanner.max.result.size</name>
+ <value>104857600</value>
+ <description>Maximum number of bytes returned when calling a scanner's next method.
+ Note that when a single row is larger than this limit the row is still returned completely.
+ The default value is 100MB.
+ This is a safety setting to protect the server from OOM situations.
+ </description>
+ </property>
+
+ <property>
<name>hbase.status.published</name>
<value>false</value>
<description>
http://git-wip-us.apache.org/repos/asf/hbase/blob/562859f4/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
index 48b2b3c..adbe6dd 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
@@ -822,8 +822,8 @@ public class RSRpcServices implements HBaseRPCErrorHandler,
HConstants.HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD,
HConstants.DEFAULT_HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD);
maxScannerResultSize = rs.conf.getLong(
- HConstants.HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE_KEY,
- HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE);
+ HConstants.HBASE_SERVER_SCANNER_MAX_RESULT_SIZE_KEY,
+ HConstants.DEFAULT_HBASE_SERVER_SCANNER_MAX_RESULT_SIZE);
// Set our address, however we need the final port that was given to rpcServer
isa = new InetSocketAddress(initialIsa.getHostName(), rpcServer.getListenerAddress().getPort());