hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yu Li (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16840) Reuse cell's timestamp and type in ScanQueryMatcher
Date Mon, 07 Nov 2016 13:02:58 GMT

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

Yu Li commented on HBASE-16840:

Ok, since there's a V2 patch and no more comments from you after a ping, I thought you're
good with it...

>From my point of view, there're some computation in {{KeyValue#getTypeByte}}
  public byte getTypeByte() {
    return this.bytes[this.offset + getKeyLength() - 1 + ROW_OFFSET];

And take {{MajorCompactionScanQueryMatcher}} for example, now we have:
    if (CellUtil.isDelete(cell)) {
    return columns.checkVersions(cell, timestamp, cell.getTypeByte(),
      mvccVersion > maxReadPointToTrackVersions);
So we will run into {{cell.getTypeByte}} and do the above mentioned computation twice, and
we could avoid one time computation with patch here.

OTOH, in current {{CellUtil#isDelete}} we already have this method and some invocation on
   * @return True if a delete type, a {@link KeyValue.Type#Delete} or a
   *         {KeyValue.Type#DeleteFamily} or a
   *         {@link KeyValue.Type#DeleteColumn} KeyValue type.
  public static boolean isDelete(final byte type) {
    return Type.Delete.getCode() <= type
        && type <= Type.DeleteFamily.getCode();
I guess it won't be more confusing by changing to use it?

I'd more like to take this as a minor improvement (already changed priority to Minor) rather
than some big performance enhancement, and I'd like to confirm still we need some micro-benchmark
to prove one computation better than twice here? Or maybe another look at the v2 patch? Thanks.

> Reuse cell's timestamp and type in ScanQueryMatcher
> ---------------------------------------------------
>                 Key: HBASE-16840
>                 URL: https://issues.apache.org/jira/browse/HBASE-16840
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: binlijin
>            Assignee: binlijin
>            Priority: Minor
>         Attachments: HBASE-16840_master.patch, HBASE-16840_master_V2.patch
> Reuse cell's timestamp and type in ScanQueryMatcher, this is useful for KeyValue.

This message was sent by Atlassian JIRA

View raw message