[
https://issues.apache.org/jira/browse/HBASE-16652?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15502866#comment-15502866
]
Duo Zhang commented on HBASE-16652:
-----------------------------------
This is in {{reckonDeltasByStore}}
{code:title=HRegion.java}
List<Cell> currentValues = get(mutation, store, deltas,
null/*Default IsolationLevel*/,
op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);
{code}
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
{code:title=HRegion.java}
// Increments carry time range. If an Increment instance, put it on the Get.
if (tr != null) {
get.setTimeRange(tr.getMin(), tr.getMax());
}
{code}
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.
Thanks.
> 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
(v6.3.4#6332)