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

Tsz Wo (Nicholas), SZE commented on HDFS-2421:
----------------------------------------------

Hi Jing, I think we cannot simply remove "synchronized" from get(T t).  
Otherwise, there are race conditions in the following code.
{code}
      if (sn == null) {
        sn = nextSerialNumber();
        t2i.put(t, sn);
        i2t.put(sn, t);
      }
{code}
                
> Improve the concurrency of  SerialNumberMap in NameNode
> -------------------------------------------------------
>
>                 Key: HDFS-2421
>                 URL: https://issues.apache.org/jira/browse/HDFS-2421
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: name-node
>            Reporter: Hairong Kuang
>            Assignee: Weiyan Wang
>             Fix For: 0.24.0
>
>         Attachments: HDFS-2421.patch, performance_SerialNumberManager.png, 
> TestSerialNumberManager.java
>
>
> After enabled permission checking in our HDFS test cluster, our benchmark 
> observed a significant reduced concurrency in NameNode. Investigation showed 
> that most threads were blocked at acquiring the lock of 
> org.apache.hadoop.hdfs.server.namenode.SerialNumberManager$SerialNumberMap. 
> We used concurrentHashMap to replace Hashmap + synchronized methods, which 
> greatly improved the situation.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to