[ https://issues.apache.org/jira/browse/HBASE-14279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15072528#comment-15072528 ]
Hiroshi Ikeda commented on HBASE-14279: --------------------------------------- The last patch contains a hash function coming from old JDK, and is it OK around a license issue? 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. As for other hash calculations, I'm not knowledgeable about MurmurHash but using a strict calculation might waste. VM might prepare Object.hashCode with poor dispersion because of performance, and hash functions in hash maps are just for dispersion in lower bits, which are supposed to be extracted with some lower bits mask. ConcurrehtHashMap.hash is exceptional because higher bits is also used to select a segment, and I think it would pay additional performance cost and it would not be appropriate in our case. > 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)