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 "Todd Lipcon (JIRA)" <ji...@apache.org> on 2011/01/24 20:02:45 UTC

[jira] Commented: (HADOOP-7105) [IPC] Improvement of lock mechanism in Listener and Reader thread

    [ https://issues.apache.org/jira/browse/HADOOP-7105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12985904#action_12985904 ] 

Todd Lipcon commented on HADOOP-7105:
-------------------------------------

I think this patch could cause a missed notify - the Reader could be slow in waking up from readSelector.select() and then not catch the notify() in finishAdd(), right?

Here's an idea - what if Reader had a non-blocking queue of channels waiting to be registered, and it processed those before entering select()? Then the Listener wouldn't ever have to wait on the Reader to process the accept-queue, but there wouldn't be a chance of missed notifies?

> [IPC] Improvement of lock mechanism in Listener and Reader thread
> -----------------------------------------------------------------
>
>                 Key: HADOOP-7105
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7105
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: ipc
>    Affects Versions: 0.21.0
>            Reporter: jinglong.liujl
>         Attachments: improveListenerLock.patch
>
>
> In many client cocurrent access, single thread Listener will become bottleneck. Many client can't be served, and get connection time out.
> To improve Listener capacity, we make 2 modification.
> 1.  Tuning ipc.server.listen.queue.size to a larger value to avoid client retry.
> 2. In currently implement, Listener will call registerChannel(), and finishAdd() in Reader, which will request Reader synchronized lock. Listener will cost too many time in waiting for this lock.
> We have made test, 
> ./bin/hadoop org.apache.hadoop.hdfs.NNThroughputBenchmark  -op create -threads 10000 -files 10000
> case 1 : Currently 
> can not pass. and report 
> hadoop-rd101.jx.baidu.com/10.65.25.166:59310. Already tried 0 time(s).
> case 2 : tuning back log to 10240
> average cost : 1285.72 ms
> case 3 : tuning back log to 10240 , and improve lock mechanism in patch
> average cost :  941.32 ms
> performance in average cost will improve 26%

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.