hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hiroshi Ikeda (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-14279) Race condition in ConcurrentIndex
Date Thu, 24 Dec 2015 01:33:46 GMT

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

Hiroshi Ikeda commented on HBASE-14279:
---------------------------------------

I worry about whether the hash calculation is well orthogonal with HashMap.hash() so that
objects are well-distributed among the entries in each internal map after the objects are
distributed into the internal maps. The new calculation seems coming from JDK 1.4.

As for the variant of single-word Wang/Jenkins hash, in http://gee.cs.oswego.edu/dl/concurrency-interest/index.html
{quote}
Sources for all classes originated by the JSR166 group are released to the public domain,
as described at http://creativecommons.org/licenses/publicdomain. This includes all code in
java.util.concurrent and its subpackages (except CopyOnWriteArrayList), ...
{quote}

and Doug Lea introduced the hash calculation code at the revision 1.93 in his repository:
http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/ConcurrentHashMap.java?revision=1.93

> 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
(v6.3.4#6332)

Mime
View raw message