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

dhruba borthakur commented on HBASE-3855:
-----------------------------------------

I have a cf with three columns. I insert 100K puts on a single rowkey with 
random column values. all these kvs are cached in the memstore.  A single scan 
to retrieve the values for two specified columnname takes about 4 millisecons 
of CPU without this patch and about 0.025 millieseconds of cpu with this patch. 
Unfortunately, I cannot share the test program because it is intertwined with 
quite a few non-opensource-able code.

However, I think the patch will benefit all cases because it is better to do a 
O(logn) lookup rather then even a small number of sequential scans.


 

> Performance degradation of memstore because reseek is linear
> ------------------------------------------------------------
>
>                 Key: HBASE-3855
>                 URL: https://issues.apache.org/jira/browse/HBASE-3855
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: dhruba borthakur
>            Assignee: dhruba borthakur
>            Priority: Blocker
>             Fix For: 0.94.0
>
>         Attachments: memstoreReseek.txt
>
>
> The scanner use reseek to find the next row (or next column) as part of a 
> scan. The reseek code iterates over a Set to position itself at the right 
> place. If there are many thousands of kvs that need to be skipped over, then 
> the time-cost is very high. In this case, a seek would be far lesser in cost 
> than a reseek.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to