Duo Zhang commented on HBASE-16652:

This is in {{reckonDeltasByStore}}
    List<Cell> currentValues = get(mutation, store, deltas,
        null/*Default IsolationLevel*/,
        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);

This is where we do get and as you said, we will pass the TimeRange to the 
{{get}} method if it is a increment, and for append it does not have a 
TimeRange so always pass null.

And in the {{get}} method

    // Increments carry time range. If an Increment instance, put it on the Get.
    if (tr != null) {
      get.setTimeRange(tr.getMin(), tr.getMax());

The only extra cost is this setTimeRange call I think? Since the default 
TimeRange of Get is also [0, Long.MAX_VALUE). I do not know how this could lead 
to the differences in your profiling results.


> Figure out performance difference between increment and append
> --------------------------------------------------------------
>                 Key: HBASE-16652
>                 URL: https://issues.apache.org/jira/browse/HBASE-16652
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Heng Chen
>              Labels: performance
>         Attachments: HBASE-16652.patch, append.jfr, append_get_profile.png, 
> increment.jfr, increment_get_profile.png
> When do performance test in HBASE-16625,  i found it has the very big 
> difference between Append and Increment (append is about 37% faster than 
> increment).
> As [~stack] mentioned in 
> https://issues.apache.org/jira/browse/HBASE-16610?focusedCommentId=15493166&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15493166,
>    append and increment has been unified in server-side,  and they looks the 
> same in client-side. 
> This issue is to figure out why the performance looks different between them.

This message was sent by Atlassian JIRA

Reply via email to