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

Rohith Sharma K S updated YARN-4002:
------------------------------------
    Attachment: YARN-4002-rwlock-v4.patch

Updated the patch addressing comments from Wangda and Jian He.
# Renamed variables to hostsListRead/WriteLock
# Added read/write lock in HostsFileReader 

*ReadLock* for the methods
# In class HostFileReader : {{getHosts()}} and {{getExcludedHosts}}
# In class NodesListManager : {{isValidNode}} and {{isUntrackedNode}}

*WriteLock* for the methods
# In class HostFileReader : 
## refresh()
## refresh(InputStream inFileInputStream, InputStream exFileInputStream)
## setIncludesFile()
## setExcludesFile
## updateFileNames
# In class NodesListManager : {{refreshHostsReader}}


> 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
>         Attachments: 0001-YARN-4002.patch, YARN-4002-lockless-read.patch, 
> YARN-4002-rwlock-v2.patch, YARN-4002-rwlock-v2.patch, 
> YARN-4002-rwlock-v3-rebase.patch, YARN-4002-rwlock-v3.patch, 
> YARN-4002-rwlock-v4.patch, YARN-4002-rwlock.patch, YARN-4002-v0.patch
>
>
> 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  alow concurrent 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)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to