[ https://issues.apache.org/jira/browse/HBASE-13527?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Lawlor updated HBASE-13527: ------------------------------------ Attachment: HBASE-13527-branch-1.0-addendum.patch Attaching an addendum that addresses compilation error in branch-1.0. > The default value for hbase.client.scanner.max.result.size is never actually > set on Scans > ----------------------------------------------------------------------------------------- > > Key: HBASE-13527 > URL: https://issues.apache.org/jira/browse/HBASE-13527 > Project: HBase > Issue Type: Bug > Affects Versions: 1.0.0, 2.0.0, 1.1.0, 0.98.12, 1.2.0 > Reporter: Jonathan Lawlor > Assignee: Jonathan Lawlor > Fix For: 2.0.0, 1.1.0, 0.98.12, 1.0.2 > > Attachments: HBASE-13527-0.98.patch, > HBASE-13527-branch-1.0-addendum.patch, HBASE-13527-v1.patch > > > Now that max result size is driven from the client side like caching > (HBASE-13362), we also need to set Scan.maxResultSize to the default value of > hbase.client.scanner.max.result.size which is never performed. I think this > has gone unnoticed because the server used to read the configuration > hbase.client.scanner.max.result.size for itself, but now we expect the > serialized Scan sent from the client side to contain this information. > Realistically this should have been set on the Scans even before HBASE-13362, > it's surprising that it's not as the scanner code seems to indicate otherwise. > Ultimately, the end result is that, by default, scan RPC's are limited by > hbase.server.scanner.max.result.size (note this is the new server side config > not the client side config) which has a default value of 100 MB. The scan > RPC's should instead be limited by hbase.client.scanner.max.result.size which > has a default value of 2 MB. > The reason why this issue occurs is because, by default, a new Scan() > initializes Scan.maxResultSize to -1. This initial value of -1 will never be > changed unless Scan#setMaxResultSize() is called. In the event that this > value is not changed, the Scan that is serialized and sent to the server will > also have Scan.maxResultSize = -1. Then, when the server is deciding what > size limit should be enforced, it sees that Scan.maxResultSize = -1 so it > uses the most relaxed size restriction possible, which is > hbase.server.scanner.max.result.size (default value 100 MB). -- This message was sent by Atlassian JIRA (v6.3.4#6332)