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

chunhui shen commented on HBASE-9488:
-------------------------------------

bq.we instead pass one arg 'boolean shortScan'. 
In the method  HStore#getScanners, 
{format}storeFilesToScan 
=this.storeEngine.getStoreFileManager().getFilesForScanOrGet(isGet, startRow, 
stopRow);{format}
The arg 'isGet' is used, thus need a new arg to specify whether using pread

bq.Is this caching location? Will we cache a location across changes? i.e. 
changes in location for the HRegionInfo?
Sure, it use current client region cache mechanism

bq.Does this have to public +public class ClientSmallScanner extends 
AbstractClientScanner {?
Existed ClientScanner is also public, keep the same with it

bq.You should instead say that the amount of data should be small and inside 
the one region.
If the scan range is within one data block, it could be considered as a small 
scan


bq.Should the Scan check that the stoprow is inside a single region and fail if 
not?
Now, I hope it is controlled by user. e.g. if the scan cross multi regions, but 
only scan two rows, in that case, small scan also be better.


Improve the javadoc of Scan#small in patch-V2

review board:

https://reviews.apache.org/r/14059/


                
> Improve performance for small scan
> ----------------------------------
>
>                 Key: HBASE-9488
>                 URL: https://issues.apache.org/jira/browse/HBASE-9488
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client, Performance, Scanners
>            Reporter: chunhui shen
>            Assignee: chunhui shen
>         Attachments: HBASE-9488-trunk.patch, test results.jpg
>
>
> Now, one scan operation would call 3 RPC at least:
> openScanner();
> next();
> closeScanner();
> I think we could reduce the RPC call to one for small scan to get better 
> performance
> Also using pread is better than seek+read for small scan (For this point, see 
> more on HBASE-7266)
> Implements such a small scan as the patch, and take the performance test as 
> following:
> a.Environment:
> patched on 0.94 version
> one regionserver; 
> one client with 50 concurrent threads;
> KV size:50/100;
> 100% LRU cache hit ratio;
> Random start row of scan
> b.Results:
> See the picture attachment
> *Usage:*
> Scan scan = new Scan(startRow,stopRow);
> scan.setSmall(true);
> ResultScanner scanner = table.getScanner(scan);
> Set the new 'small' attribute as true for scan, others are the same
>  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to