[
https://issues.apache.org/jira/browse/TEZ-1400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rajesh Balamohan updated TEZ-1400:
----------------------------------
Attachment: TEZ-1400.1.patch
"Reducer 4" was started with tez.am.shuffle-vertex-manager.max-src-fraction =
0, tez.am.shuffle-vertex-manager.max-src-fraction = 0.
{code}
// min and max are equal. schedule 100% on reaching min
if(completedSourceTaskFraction < slowStartMinSrcCompletionFraction) {
<== (0 < 0) would be false and tasksFractionToSchedule would retain 1, causing
“Reducer 4” to start much earlier than “Reducer 3” auto-tuning.
tasksFractionToSchedule = 0;
}
{code}
This caused ShuffleVertexManager to schedule the tasks for "Reducer 4" much
earlier and "Reducer 4" would not be aware of the auto-tuning done in "Reducer
3".
Attaching simple patch to fix the issue.
[~bikassaha] Can you please review?
> Reducers stuck when enabling auto-reduce parallelism (MRR case)
> ---------------------------------------------------------------
>
> Key: TEZ-1400
> URL: https://issues.apache.org/jira/browse/TEZ-1400
> Project: Apache Tez
> Issue Type: Bug
> Affects Versions: 0.5.0
> Reporter: Rajesh Balamohan
> Assignee: Rajesh Balamohan
> Labels: performance
> Attachments: TEZ-1400.1.patch, dag.dot
>
>
> In M -> R1 -> R2 case, if R1 is optimized by auto-parallelism R2 gets stuck
> waiting for events.
> e.g
> Map 1: 0/1 Map 2: -/- Map 5: 0/1 Map 6: 0/1 Map 7: 0/1
> Reducer 3: 0/23 Reducer 4: 0/1
> ...
> ...
> Map 1: 1/1 Map 2: 148(+13)/161 Map 5: 1/1 Map 6: 1/1 Map
> 7: 1/1 Reducer 3: 0(+3)/3 Reducer 4: 0(+1)/1 <== Auto reduce
> parallelism kicks in
> ..
> Map 1: 1/1 Map 2: 161/161 Map 5: 1/1 Map 6: 1/1 Map 7: 1/1
> Reducer 3: 3/3 Reducer 4: 0(+1)/1
> Job is stuck waiting for events in Reducer 4.
> [fetcher [Reducer_3] #23]
> org.apache.tez.runtime.library.common.shuffle.impl.ShuffleScheduler: copy(3
> of 23 at 0.02 MB/s) <=== *Waiting for 20 more partitions, even though
> Reducer3 has been optimized to use 3 reducers
--
This message was sent by Atlassian JIRA
(v6.2#6252)