Repository: hbase
Updated Branches:
  refs/heads/branch-1.0 2752e3cf6 -> 65c3c3716


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/65c3c371
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/65c3c371
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/65c3c371

Branch: refs/heads/branch-1.0
Commit: 65c3c371698eff419ad78cab3c2f9e21a782395b
Parents: 2752e3c
Author: Lars Hofhansl <[email protected]>
Authored: Wed Apr 8 21:55:34 2015 -0700
Committer: Lars Hofhansl <[email protected]>
Committed: Wed Apr 8 21:55:34 2015 -0700

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/HConstants.java     | 21 ++++++++++++++++++--
 .../hbase/regionserver/RSRpcServices.java       |  6 +++---
 2 files changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/65c3c371/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 a4e6784..5d116c6 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
@@ -603,13 +603,30 @@ public final class HConstants {
       "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.
+   *
+   * The default value is 2MB.
+   */
+  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 unlimited.
+   * The default value unlimited for backwards compatibility
    */
-  public static final long DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE = 
Long.MAX_VALUE;
+  public static final long DEFAULT_HBASE_SERVER_SCANNER_MAX_RESULT_SIZE = 
Long.MAX_VALUE;
 
   /**
    * Parameter name for client pause value, used mostly as value to wait

http://git-wip-us.apache.org/repos/asf/hbase/blob/65c3c371/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 3165854..6da9ba1 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
@@ -786,8 +786,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());
@@ -2094,7 +2094,7 @@ public class RSRpcServices implements 
HBaseRPCErrorHandler,
                 boolean moreRows = false;
                 while (i < rows) {
                   // Stop collecting results if maxScannerResultSize is set 
and we have exceeded it
-                  if ((maxScannerResultSize < Long.MAX_VALUE) &&
+                  if ((maxResultSize < Long.MAX_VALUE) &&
                       (currentScanResultSize >= maxResultSize)) {
                     builder.setMoreResultsInRegion(true);
                     break;

Reply via email to