hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron T. Myers (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-4359) remove an unnecessary synchronized keyword in BPOfferService.java
Date Fri, 18 Jan 2013 02:04:19 GMT

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

Aaron T. Myers commented on HDFS-4359:

I agree that the synchronized keyword here is unnecessary, given that the underlying list
is in fact thread safe. I also manually verified that removing this synchronization allows
for publication of the metrics to proceed even if the DN's BPOfferService is blocked because
of a slow NN.

I'm +1 on this change. Unless I hear any objections, I'm going to commit this tomorrow.
> remove an unnecessary synchronized keyword in BPOfferService.java
> -----------------------------------------------------------------
>                 Key: HDFS-4359
>                 URL: https://issues.apache.org/jira/browse/HDFS-4359
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode
>    Affects Versions: 3.0.0, 2.0.2-alpha
>            Reporter: liang xie
>            Assignee: liang xie
>         Attachments: dn.jstack, HDFS-4359.txt, nn_dns_broken.jstack
> we encountered a NN&DN hung issue, the DN hung was caused by no NN response for heartbeat.
Per DN thread dump, i think we can have a little improvement on this detail code :
>   synchronized List<BPServiceActor> getBPServiceActors() {
>     return Lists.newArrayList(bpServices);
>   }
> the bpServices is declared as :
>   private List<BPServiceActor> bpServices =
>     new CopyOnWriteArrayList<BPServiceActor>();
> It's a thread-safe variant indead, so we can remove the above synchronized keyword safely,
> Here is a simple statistic for thread dump: 
> xieliang@xieliang:/tmp$ grep 0x00000007b00289f0 dn.jstack |wc -l
> 252

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

View raw message