[ https://issues.apache.org/jira/browse/HBASE-9488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13801483#comment-13801483 ]
Lars Hofhansl commented on HBASE-9488: -------------------------------------- Also committed to 0.94. Thanks for the patch, Chunhui, and the reminder, Chao. > 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.96.0, 0.94.13 > > Attachments: hbase-9488-94-v3.patch, HBASE-9488-trunk.patch, > HBASE-9488-trunkV2.patch, HBASE-9488-trunkV3.patch, HBASE-9488-trunkV4.patch, > HBASE-9488-trunkV4.patch, HBASE-9488-trunkV5.patch, > mergeRpcCallForScan.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 was sent by Atlassian JIRA (v6.1#6144)