hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Heng Chen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-14279) Race condition in ConcurrentIndex
Date Mon, 28 Dec 2015 09:53:49 GMT

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

Heng Chen commented on HBASE-14279:

The last patch contains a hash function coming from old JDK, and is it OK around a license
org.apache.hadoop.hbase.regionserver.LruHashMap#hashcode already use it,  So IMO it is ok
for license.

Is there some reason JDK changes the logic of the hash function and can we ignore it safely?
I also slightly worry about there still exists an other VM implementation that uses the old
hash function, making our internal maps completely waste.
I don't think there is any problem here.  As i mentioned above, if orthogonal problem exists,
the only cost is some conflicts when search key in internal map. And i do NOT think it is
a big problem compared with disk IO.  And if we check the usage of ConcurrentIndex,  there
is no GET operation.  So i think we have no need to do improvement for internal map operation,
it is useless for the whole performance of BucketCache, wdyt? [~ikeda]

> Race condition in ConcurrentIndex
> ---------------------------------
>                 Key: HBASE-14279
>                 URL: https://issues.apache.org/jira/browse/HBASE-14279
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Hiroshi Ikeda
>            Assignee: Heng Chen
>            Priority: Minor
>         Attachments: HBASE-14279.patch, HBASE-14279_v2.patch, HBASE-14279_v3.patch, HBASE-14279_v4.patch,
HBASE-14279_v5.patch, HBASE-14279_v5.patch, HBASE-14279_v6.patch, HBASE-14279_v7.1.patch,
HBASE-14279_v7.patch, LockStripedBag.java
> {{ConcurrentIndex.put}} and {{remove}} are in race condition. It is possible to remove
a non-empty set, and to add a value to a removed set. Also {{ConcurrentIndex.values}} is vague
in sense that the returned set sometimes trace the current state and sometimes doesn't.

This message was sent by Atlassian JIRA

View raw message