[ 
https://issues.apache.org/jira/browse/HDFS-5242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daryn Sharp updated HDFS-5242:
------------------------------

    Attachment: HDFS-5242.patch

Remove synchronized keyword from {{get/setNetworkLocation}}. HDFS-1985 added 
the synch with no clear reason and it's the only synch'ed mutable field in the 
class.  A profiler identified this unnecessary synch after peeling away other 
issues.  Unnecessary synchs cause thread contention and which harms performance 
due to context switches.

The synch doesn't really protect against any race conditions.  Further, the 
network location is only set when registering a datanode so it's not changing 
during normal operation.
                
> Reduce contention on DatanodeInfo instances
> -------------------------------------------
>
>                 Key: HDFS-5242
>                 URL: https://issues.apache.org/jira/browse/HDFS-5242
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: namenode
>    Affects Versions: 2.0.0-alpha, 3.0.0
>            Reporter: Daryn Sharp
>            Assignee: Daryn Sharp
>         Attachments: HDFS-5242.patch
>
>
> Synchronization in {{DatanodeInfo}} instances causes unnecessary contention 
> between call handlers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to