[
https://issues.apache.org/jira/browse/HBASE-18251?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Toshihiro Suzuki updated HBASE-18251:
-------------------------------------
Attachment: HBASE-18251.patch
I've just attached the patch.
The patch uses first/lastEntry().getValue() instead of first/lastKey().
Because ConcurrentSkipListMap.put() doesn't replace the key when the map
previously contained a mapping for the key, first/lastKey() will return the
old cell instance even though we overwrite the value by using
ConcurrentSkipListMap.put(). Therefore we should not use first/lastKey() in
this case.
> 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
> Attachments: HBASE-18251.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
(v6.4.14#64029)