You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Hong Zhiguo (JIRA)" <ji...@apache.org> on 2015/07/31 04:26:04 UTC

[jira] [Updated] (YARN-4002) make ResourceTrackerService.nodeHeartbeat more concurrent

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

Hong Zhiguo updated YARN-4002:
------------------------------
    Description: 
We have multiple RPC threads to handle NodeHeartbeatRequest from NMs. By design the method ResourceTrackerService.nodeHeartbeat should be concurrent enough to scale for large clusters.
But we have a "BIG" lock in NodesListManager.isValidNode which I think it's unnecessary.
First, the fields "includes" and "excludes" of HostsFileReader are only updated on "refresh nodes".  All RPC threads handling node heartbeats are only readers.  So RWLock could be used to have alow concurrently access by RPC threads.
Second, since he fields "includes" and "excludes" of HostsFileReader are always updated by "reference assignment", which is atomic in Java, the reader side lock could just be skipped.

  was:
We have multiple RPC threads to handle NodeHeartbeatRequest from NMs. By design the method ResourceTrackerService.nodeHeartbeat should be concurrent enough to scale for large clusters.
But we have a "BIG" log in NodesListManager.isValidNode which I think it's unnecessary.
First, the fields "includes" and "excludes" of HostsFileReader are only updated on "refresh nodes".  All RPC threads handling node heartbeats are only readers.  So RWLock could be used to have alow concurrently access by RPC threads.
Second, since he fields "includes" and "excludes" of HostsFileReader are always updated by "reference assignment", which is atomic in Java, the reader side lock could just be skipped.


> make ResourceTrackerService.nodeHeartbeat more concurrent
> ---------------------------------------------------------
>
>                 Key: YARN-4002
>                 URL: https://issues.apache.org/jira/browse/YARN-4002
>             Project: Hadoop YARN
>          Issue Type: Improvement
>            Reporter: Hong Zhiguo
>            Assignee: Hong Zhiguo
>            Priority: Critical
>
> We have multiple RPC threads to handle NodeHeartbeatRequest from NMs. By design the method ResourceTrackerService.nodeHeartbeat should be concurrent enough to scale for large clusters.
> But we have a "BIG" lock in NodesListManager.isValidNode which I think it's unnecessary.
> First, the fields "includes" and "excludes" of HostsFileReader are only updated on "refresh nodes".  All RPC threads handling node heartbeats are only readers.  So RWLock could be used to have alow concurrently access by RPC threads.
> Second, since he fields "includes" and "excludes" of HostsFileReader are always updated by "reference assignment", which is atomic in Java, the reader side lock could just be skipped.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)