hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Toshihiro Suzuki (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18251) Remove unnecessary traversing to the first and last keys in the CellSet
Date Thu, 20 Jul 2017 06:35:00 GMT

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

Toshihiro Suzuki commented on HBASE-18251:

[~ram_krish] No we can't for the following reason:

delegatee is a ConcurrentSkipListMap when the following CellSet constructor is instantiated:
CellSet(final CellComparator c). And, ConcurrentSkipListMap.put() doesn't replace the key
when the map previously contained a mapping for the key. So this.delegatee.firstKey() will
return the old cell instance even though we overwrite the value by using ConcurrentSkipListMap.put().

> Remove unnecessary traversing to the first and last keys in the CellSet
> -----------------------------------------------------------------------
>                 Key: HBASE-18251
>                 URL: https://issues.apache.org/jira/browse/HBASE-18251
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Anastasia Braginsky
>            Assignee: Toshihiro Suzuki
>         Attachments: HBASE-18251.patch, HBASE-18251-v2.patch
> The implementation of finding the first and last keys in the CellSet is as following:
> {code}
>  public Cell first() {
>     return this.delegatee.get(this.delegatee.firstKey());
>   }
>   public Cell last() {
>     return this.delegatee.get(this.delegatee.lastKey());
>   }
> {code}
> Recall we have Cell to Cell mapping, therefore the methods bringing the first/last key,
which allready return Cell. Thus no need to waist time on the get() method for the same Cell.
> Fix: return just the first/lastKey(), should be at least twice more effective.

This message was sent by Atlassian JIRA

View raw message