[ 
https://issues.apache.org/jira/browse/HBASE-13362?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14386983#comment-14386983
 ] 

Jonathan Lawlor commented on HBASE-13362:
-----------------------------------------

This sounds like a great idea. As [~lhofhansl] pointed out with the test in 
HBASE-13297, it easy for the client and server to have different configurations 
for the default max result size. Prior to HBASE-13262 this would have meant 
data loss. With HBASE-13262 we no longer have data loss, it's just ugly. 

If instead it was dealt with in the same manner as caching (e.g. the caching 
value must be carried in the ScanRequest to the server) it would be much 
cleaner. The 2mb default sounds good. 

Probably obvious, but just to be clear, we would still need to support 
instances where the client uses a negative maxResultSize to indicate that the 
response should not be limited by the result size (i.e. negative maxResultSize 
is equivalent to maxResultSize = Long.MAX_VALUE).

If backported prior to branch-1, it would be nice to accompany this change with 
a change in the default caching value (from the current default of 100 to 
Integer.MAX_VALUE) so that the size limit is reached by default, rather than 
the caching/row limit (I say prior to branch-1 because the defaults of 
caching/maxResultSize in branch-1+ will already produce this behavior). 
Granted, this accompanying change would probably be dealt with best in a 
separate JIRA.

> set max result size from client only (like caching)?
> ----------------------------------------------------
>
>                 Key: HBASE-13362
>                 URL: https://issues.apache.org/jira/browse/HBASE-13362
>             Project: HBase
>          Issue Type: Brainstorming
>            Reporter: Lars Hofhansl
>
> With the recent problems we've been seeing client/server result size 
> mismatch, I was thinking: Why was this not a problem with scanner caching?
> There are two reasons:
> # number of rows is easy to calculate (and we did it correctly)
> # caching is only controlled from the client, never set on the server alone
> We did fix both #1 and #2 in HBASE-13262.
> Still, I'd like to discuss the following:
> * default the client sent max result size to 2mb
> * remove any server only result sizing
> * continue to use hbase.client.scanner.max.result.size but enforce it via the 
> client only (as the name implies anyway).
> Comments? Concerns?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to