You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tez.apache.org by "Panagiotis Garefalakis (Jira)" <ji...@apache.org> on 2020/10/09 09:07:00 UTC

[jira] [Updated] (TEZ-4213) Bound appContext executor capacity using a configurable property

     [ https://issues.apache.org/jira/browse/TEZ-4213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Panagiotis Garefalakis updated TEZ-4213:
----------------------------------------
    Description: 
After TEZ-4170 was merged, appContext executor pool is also used by the RootInputInitializerManager to speed up SplitGeneration.

However, this executor pool currently has no capacity limit https://github.com/apache/tez/blob/master/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java#L624

The problem occurs when generating splits for larger inputs (thousands or more) is that it can could result to
{color:red}java.lang.OutOfMemoryError{color}
that is also reproducible with a test case.
https://github.com/apache/tez/blob/master/tez-dag/src/main/java/org/apache/tez/dag/app/dag/RootInputInitializerManager.java#L130

To avoid such errors, I propose to limit the capacity of this pool to a configurable value that can be for example the number of physical cores by default.

  was:
After TEZ-4170 was merged, appContext executor pool is also used by the RootInputInitializerManager to speed up SplitGeneration.

However, this executor pool currently has not capacity limit https://github.com/apache/tez/blob/master/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java#L624

The problem the occurs when generating splits for larger inputs (thousands or more) is that it can could result to
{color:red}java.lang.OutOfMemoryError{color}
that is also reproducible with a test case.
https://github.com/apache/tez/blob/master/tez-dag/src/main/java/org/apache/tez/dag/app/dag/RootInputInitializerManager.java#L130

To avoid such errors, I propose to limit the capacity of this pool to a configurable value that can be for example the number of physical cores by default.


> Bound appContext executor capacity using a configurable property
> ----------------------------------------------------------------
>
>                 Key: TEZ-4213
>                 URL: https://issues.apache.org/jira/browse/TEZ-4213
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Panagiotis Garefalakis
>            Assignee: Panagiotis Garefalakis
>            Priority: Major
>              Labels: 0.10_blocker
>             Fix For: 0.10.0
>
>         Attachments: TEZ-4213.01.patch, TEZ-4213.02.patch, TEZ-4213.03.patch, TEZ-4213.04.patch, TEZ-4213.05.patch, TEZ-4213.06.patch, TEZ-4213.07.patch, TEZ-4213.08.patch
>
>          Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> After TEZ-4170 was merged, appContext executor pool is also used by the RootInputInitializerManager to speed up SplitGeneration.
> However, this executor pool currently has no capacity limit https://github.com/apache/tez/blob/master/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java#L624
> The problem occurs when generating splits for larger inputs (thousands or more) is that it can could result to
> {color:red}java.lang.OutOfMemoryError{color}
> that is also reproducible with a test case.
> https://github.com/apache/tez/blob/master/tez-dag/src/main/java/org/apache/tez/dag/app/dag/RootInputInitializerManager.java#L130
> To avoid such errors, I propose to limit the capacity of this pool to a configurable value that can be for example the number of physical cores by default.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)