[prev in list] [next in list] [prev in thread] [next in thread] 

List:       hadoop-user
Subject:    Re: Why not use Serializable?
From:       Doug Cutting <cutting () apache ! org>
Date:       2006-09-27 16:24:42
Message-ID: 451AA5CA.6070208 () apache ! org
[Download RAW message or body]

Feng Jiang wrote:
> In my implementation, I still permit the out-of-order RPC call by the same
> way. the only difference between my impl and your previous impl is:
> 1. I made use of threadpool(JDK1.5) to replace the "Handler" threads. I
> believe the JDK's impl should not be worse than ourselves, and threadpool
> could be grows or shrinks dynamically, even more, I can control the pool
> size, core size, etc.
> 2. Since I just put the connection into the threadpool directly, I removed
> the queue, and that is why i believe my impl should save more memory than
> your previous impl. Because you have only 100 threads, if the 101th client
> sends a request to you, you have to put the connection into the queue, so
> the queue may become bigger and bigger. In my impl, if the 101th client
> comes, the listener will be blocked until the threadpool is available (if i
> limit the threadpool's max size. If not, the listener will never be 
> blocked,
> the each request always has chance to be executed).

To me it seems that ThreadPoolExecutor must still have a thread switch 
per request, so I don't understand why it should be much faster.  And 
the cost of the queue should not be great.  It's intent was to absorb 
small bursts of traffic without increasing the number of worker threads.

If you believe that Java 1.5's ThreadPoolExecutor would improve things 
significantly, please submit a patch to Server.java, changing it to use 
this.  Please attach the patch to a bug in Jira.  Even if it does not 
prove significantly faster, making the Hadoop code smaller could alone 
justify the change.

Thanks,

Doug

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic