[
https://issues.apache.org/jira/browse/HBASE-18665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Peter Somogyi updated HBASE-18665:
----------------------------------
Release Note: Performing reverse scan on tables used the meta cache
incorrectly and fetched data from meta table every time. This fix solves this
issue and which results in performance improvement for reverse scans.
> ReversedScannerCallable invokes getRegionLocations incorrectly
> --------------------------------------------------------------
>
> Key: HBASE-18665
> URL: https://issues.apache.org/jira/browse/HBASE-18665
> Project: HBase
> Issue Type: Bug
> Affects Versions: 2.0.0, 3.0.0, 1.4.0, 1.3.2, 1.5.0, 1.2.7, 1.1.13
> Reporter: Peter Somogyi
> Assignee: Peter Somogyi
> Priority: Critical
> Fix For: 3.0.0, 1.4.0, 1.5.0, 2.0.0-alpha-3
>
> Attachments: 18665.master.003.patch, HBASE-18665.branch-1.003.patch,
> HBASE-18665.branch-1.003.patch, HBASE-18665.master.001.patch,
> HBASE-18665.master.002.patch, HBASE-18665.master.003.patch,
> HBASE-18665.master.003.patch
>
>
> The behavior of ReversedScannerCallable#prepare [1] and
> ScannerCallable#prepare [2] methods differ how they call
> RpcRetryingCallerWithReadReplicas.getRegionLocations method.
> The reversed scanner uses the 'reload' parameter directly as the first
> argument - RpcRetryingCallerWithReadReplicas.getRegionLocations(reload, id,
> getConnection(), getTableName(), getRow()) - however, the forward scanner
> passes '!reload'. The getRegionLocations first parameter is 'useCache', the
> way we use it in ScannerCallable is the correct one.
> The same call can be found in ReversedScannerCallable#locateRegionsInRange
> [3] also without negating its value.
> [1]
> https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ReversedScannerCallable.java#L89-L90
> [2]
> https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java#L139-L140
> [3]
> https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ReversedScannerCallable.java#L143-L144
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)