[ 
https://issues.apache.org/jira/browse/HBASE-9488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chunhui shen updated HBASE-9488:
--------------------------------

    Description: 
review board:
https://reviews.apache.org/r/14059/

*Performance Improvement *
Test shows about 1.5~3X improvement for small scan where limit<=50 under cache 
hit ratio=100%.
See more performance test result from 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 object, others are the same



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

 

  was:
review board:

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


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
 

    
> 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
>             Fix For: 0.98.0, 0.94.13
>
>         Attachments: hbase-9488-94-v3.patch, HBASE-9488-trunk.patch, 
> HBASE-9488-trunkV2.patch, HBASE-9488-trunkV3.patch, test results.jpg
>
>
> review board:
> https://reviews.apache.org/r/14059/
> *Performance Improvement *
> Test shows about 1.5~3X improvement for small scan where limit<=50 under 
> cache hit ratio=100%.
> See more performance test result from 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 object, others are the same
> 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
>  

--
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