[ https://issues.apache.org/jira/browse/HADOOP-3104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12582931#action_12582931
]
Alejandro Abdelnur commented on HADOOP-3104:
--------------------------------------------
per Chris suggestion, catch blocks of InterruptedException now rethrow the exception, but
as a RuntimeException (instead an IOException as he suggested) as I think is more appropriate
as it is not an IO issue.
per Devaraj's suggestion, refactored to use wait-notify in a ThreadPoolExecutor subclass that
uses the wait-notify to make the execute blocking if there are not threads. There is no need
to use a rejection handler anymore. Also refactor the exception check into a method and use
that method in the different parts of the maprunner instead duplicating the exception check
code.
> MultithreadMapRunner keeps consuming records even if trheads are not available
> ------------------------------------------------------------------------------
>
> Key: HADOOP-3104
> URL: https://issues.apache.org/jira/browse/HADOOP-3104
> Project: Hadoop Core
> Issue Type: Bug
> Affects Versions: 0.16.1
> Environment: all
> Reporter: Alejandro Abdelnur
> Assignee: Alejandro Abdelnur
> Priority: Critical
> Fix For: 0.16.2
>
> Attachments: patch3104.txt, patch3104.txt
>
>
> The ExecutorService execute() method does not block when there are not threads available,
it queues up the runnables until there are threads.
> The problem is that all key/values are read and kept in memory for the task, with large
datasets this will create a OOM exception.
> Have to figure out how to use the execute in blocking fashion.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
|