[ 
https://issues.apache.org/jira/browse/TEZ-1897?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14522298#comment-14522298
 ] 

Siddharth Seth commented on TEZ-1897:
-------------------------------------

Mostly minor comments.
- "AsyncDispatcherConcurrent(String name, int numThreads) {" super(name) 
instead of super("dispatcher")
- final LinkedBlockingQueue<Event> queue;; - Double ";"
- serviceStop / serviceStart don't need to invoke super. These will be invoked 
via the stop() / start() methods automatically.
- In AsyncDispatcher - the error checking code for previously registered 
dispatchers ("/* check to see if we have a listener registered */") can be 
common across all register methods. registerAndCreateDispatcher(without 
#threads) is missing a check on ConcurrentDispatchers
- waitForDrained.wait(1000);, LOG.info("Waiting for AsyncDispatcher to 
drain."); - log line before the wait ?
- At the same place - do the threads need to be interrupted ? Otherwise they'll 
always wait for the 1000ms if the queue is already empty.
- There's changes in TaskImpl, Task, Vertex - which are unrelated to this. 
That's likely adding to perf gains. There's a separate jira for this - will see 
if the scope of that is no longer valid after theses changes.

Major bit: 
There's a lot of code duplication between AsyncDispatcher and 
AsyncDispatcherConcurrent - GenericEventHandler, MultiAttemptListener and a 
bunch more.The register functions seem a little unnecessary since noone 
registers directly with this. Not sure if you want to fix this here or in a 
follow up.

> Create a concurrent version of AsyncDispatcher
> ----------------------------------------------
>
>                 Key: TEZ-1897
>                 URL: https://issues.apache.org/jira/browse/TEZ-1897
>             Project: Apache Tez
>          Issue Type: Task
>            Reporter: Bikas Saha
>            Assignee: Bikas Saha
>         Attachments: TEZ-1897.1.patch, TEZ-1897.2.patch, TEZ-1897.3.patch, 
> TEZ-1897.4.patch, TEZ-1897.5.patch, TEZ-1897.6.patch
>
>
> Currently, it processes events on a single thread. For events that can be 
> executed in parallel, e.g. vertex manager events, allowing higher concurrency 
> may be beneficial.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to