[
https://issues.apache.org/jira/browse/HBASE-11544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14326909#comment-14326909
]
Jonathan Lawlor commented on HBASE-11544:
-----------------------------------------
bq. So, even if in excess of the requested size, we'll still return the full
row in this case?
Correct, the maxResultSize would work in the same way that it works rights now
(i.e. after each full row is retrieved, the accumulated result size is checked
against the maxResultSize). This means the requested size may be significantly
exceeded if there is a very large row (e.g. a row whose net size is many times
larger than the requested size).
I should note that not all filters will trigger this behavior, but rather only
those filters that have Filter#hasFilterRow() return true.
bq. You set some flag on the scanner when it has to do full-row regardless?
A flag hasn't been added to the scanner but rather the decision to do full-rows
is made by looking at Filter#hasFilterRow and using an appropriate value of
remainingResultSize (-1 indicates no limit on the result size, and thus entire
rows will be returned).
> [Ergonomics] hbase.client.scanner.caching is dogged and will try to return
> batch even if it means OOME
> ------------------------------------------------------------------------------------------------------
>
> Key: HBASE-11544
> URL: https://issues.apache.org/jira/browse/HBASE-11544
> Project: HBase
> Issue Type: Bug
> Reporter: stack
> Assignee: Jonathan Lawlor
> Priority: Critical
> Labels: beginner
> Attachments: HBASE-11544-v1.patch
>
>
> Running some tests, I set hbase.client.scanner.caching=1000. Dataset has
> large cells. I kept OOME'ing.
> Serverside, we should measure how much we've accumulated and return to the
> client whatever we've gathered once we pass out a certain size threshold
> rather than keep accumulating till we OOME.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)