[
https://issues.apache.org/jira/browse/HADOOP-15486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16484047#comment-16484047
]
Daryn Sharp commented on HADOOP-15486:
--------------------------------------
There's no need for a config. Just make the lock always be fair. Updates to
the topology should be rare compared to block placements so the throughput
degradation of the fair lock will be minimal.
> Add a config option to make NetworkTopology#netLock fair
> --------------------------------------------------------
>
> Key: HADOOP-15486
> URL: https://issues.apache.org/jira/browse/HADOOP-15486
> Project: Hadoop Common
> Issue Type: Improvement
> Components: net
> Reporter: Nanda kumar
> Assignee: Nanda kumar
> Priority: Major
> Attachments: HADOOP-15486.000.patch
>
>
> Whenever a datanode is restarted, the registration call after the restart
> received by NameNode lands in {{NetworkTopology#add}} via
> {{DatanodeManager#registerDatanode}} requires write lock on
> {{NetworkTopology#netLock}}. This registration thread is getting starved by
> flood of {{FSNamesystem.getAdditionalDatanode}} calls, which are triggered by
> clients those who were writing to the restarted datanode.
> The registration call which is waiting for write lock on
> {{NetworkTopology#netLock}} is holding write lock on {{FSNamesystem#fsLock}},
> causing all the other RPC calls which require the lock on
> {{FSNamesystem#fsLock}} wait.
> We can introduce a config property to make {{NetworkTopology#netLock}} lock
> fair so that the registration thread will not starve.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]