[ 
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)

Reply via email to