You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Daryn Sharp (JIRA)" <ji...@apache.org> on 2013/11/11 20:31:20 UTC
[jira] [Updated] (HADOOP-9956) RPC listener inefficiently assigns
connections to readers
[ https://issues.apache.org/jira/browse/HADOOP-9956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daryn Sharp updated HADOOP-9956:
--------------------------------
Attachment: HADOOP-9956.patch
Now uses a blocking queue to limit the backlog of pending connections for readers. Added a bunch of tests. Has been internally tested on medium sized clusters and is yielding positive results.
> RPC listener inefficiently assigns connections to readers
> ---------------------------------------------------------
>
> Key: HADOOP-9956
> URL: https://issues.apache.org/jira/browse/HADOOP-9956
> Project: Hadoop Common
> Issue Type: Sub-task
> Components: ipc
> Affects Versions: 2.0.0-alpha, 3.0.0
> Reporter: Daryn Sharp
> Assignee: Daryn Sharp
> Attachments: HADOOP-9956.patch, HADOOP-9956.patch
>
>
> The socket listener and readers use a complex synchronization to update the reader's NIO {{Selector}}. Updating active selectors is not thread-safe so precautions are required.
> However, the current locking choreography results in a serialized distribution of new connections to the parallel socket readers. A slower/busier reader can stall the listener and throttle performance.
> The problem manifests as unexpectedly low cpu utilization by the listener and readers (~20-30%) under heavy load. The call queue is shallow when it should be overflowing.
--
This message was sent by Atlassian JIRA
(v6.1#6144)