Vikas Vishwakarma created HBASE-20891:
-----------------------------------------

             Summary: Avoid intermediate array to arraylist conversions while 
loading scan cache
                 Key: HBASE-20891
                 URL: https://issues.apache.org/jira/browse/HBASE-20891
             Project: HBase
          Issue Type: Bug
          Components: Client
    Affects Versions: 3.0.0, 2.1.0
            Reporter: Vikas Vishwakarma
            Assignee: Vikas Vishwakarma


As discussed in HBASE-20866, we would like to avoid array to arraylist 
conversions while loading scan cache which is currently happening as part of 
partial result handling. In HBASE-20866 we are handling the changes for 
branch-1.x. In this request we will handle it for branch-2 and master branch, 
since the code has been refactored and will require more changes compared to 
branch-1

Also preliminary look at the master branch shows that result handling has been 
separated out into AllowPartialScanResultCache, BatchScanResultCache and 
CompleteScanResultCache.

In case of BatchScanResultCache we are actually converting Result[] to 
List<Result> for result grooming and then  List<Result> back to toArray before 
returning to loadCache() where it is added to cache.

So in case of BatchScanResultCache if we are able to directly load the results 
to cache then we would be avoiding two intermediate conversions
 * result Array to ArrayList in BatchScanResultCache for result grooming
 * ArrayList to array conversion while returning to loadCache()

Which will probably give higher performance improvement compared to branch-1 
case handled in HBASE-20866 where we avoided just one result array to arraylist 
conversion and saw upto 10% improvement in scan performance

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to