[
https://issues.apache.org/jira/browse/HADOOP-6713?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dmytro Molkov updated HADOOP-6713:
----------------------------------
Attachment: HADOOP-6713.2.patch
modifying the patch to address Hairong's comments:
1. Removed the System.out
2. Removed doRead from listener#run
3. Changed the code to accept all the connections in the queue
4. I wrote a comment on startAdd method to explain the synchronization a
little. The reason I went with this decision is to keep the semantics of
doAccept. After the iteration with certain channel that channel is registered
with the selector and is ready to be read. Otherwise it possibly could affect
other parts of the code, when the connection is accepted (doAccept iteration
for the channel is over) but connectionList is not modified yet. And the
connection is only created when the channel is registered with selector.
> The RPC server Listener thread is a scalability bottleneck
> ----------------------------------------------------------
>
> Key: HADOOP-6713
> URL: https://issues.apache.org/jira/browse/HADOOP-6713
> Project: Hadoop Common
> Issue Type: Improvement
> Components: ipc
> Affects Versions: 0.21.0
> Reporter: dhruba borthakur
> Assignee: Dmytro Molkov
> Attachments: HADOOP-6713.2.patch, HADOOP-6713.patch
>
>
> The Hadoop RPC Server implementation has a single Listener thread that reads
> data from the socket and puts them into a call queue. This means that this
> single thread can pull RPC requests off the network only as fast as a single
> CPU can execute. This is a scalability bottlneck in our cluster.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.