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)