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

Raymond Liu commented on HBASE-7952:
------------------------------------

And I do micro benchmark the performance by something like:

{code}
for (int n = 0; n < times; n++) {
       explicit.reset();
       for (int i = 0; i < colnum; i++) {
         byte [] col = Bytes.toBytes("col"+i);
         explicit.checkColumn(col, 0, col.length, 1, 
KeyValue.Type.Put.getCode(),
             false);
       }
     }
{code}

with times=2000000 cols=10, the time cost of before/after is 7950ms/7100ms

                
> Remove update() and Improve ExplicitColumnTracker performance.
> --------------------------------------------------------------
>
>                 Key: HBASE-7952
>                 URL: https://issues.apache.org/jira/browse/HBASE-7952
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>    Affects Versions: 0.94.1, 0.94.5
>            Reporter: Raymond Liu
>            Assignee: Raymond Liu
>             Fix For: 0.96.0
>
>         Attachments: HBASE_7952.patch
>
>
> In ColumnTracker.java, the update() method is not used by anyone now. And no 
> one will call checkColumn for different HFiles with update() in between files 
> to re-walk through the target columns. All columns will be feed to 
> checkColumn() in order.
> So, within ExplicitColumnTracker, the target columns can be optimized to not 
> dynamic maintain a changing list of columns yet to match. Instead, just move 
> index through it is enough.
> with this optimization to save the time for avoid reconstruct a columns array 
> upon each row, the checkColumn method's performance could be improved by 
> 10-20%.

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