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

Rohini Palaniswamy commented on PIG-4580:
-----------------------------------------

So with this patch only in case of skewed outer join, the sample is also 
broadcast to the skewed join vertex. After 0.15, we need to revisit the fix for 
PIG-4377 to see if we can do it in a better way so that we still do dynamic 
parallelism for skewed outer join as well.

+1. 

> Fix TestTezAutoParallelism.testSkewedJoinIncreaseParallelism test failure
> -------------------------------------------------------------------------
>
>                 Key: PIG-4580
>                 URL: https://issues.apache.org/jira/browse/PIG-4580
>             Project: Pig
>          Issue Type: Bug
>          Components: tez
>            Reporter: Daniel Dai
>            Assignee: Daniel Dai
>             Fix For: 0.15.0
>
>         Attachments: PIG-4580-1.patch
>
>
> If a vertex need to increase parallelism dynamically, it cannot has 
> additional broadcast input. In the test case, join vertex requires a 
> broadcast edge to acquire sample file (used in IsFirstReduceOfKeyTez), and 
> the join vertex use PartitionerDefinedVertexManager which can increase 
> parallelism dynamically. If that happens, we will see exception:
> {code}
> Fetch failed:java.lang.IndexOutOfBoundsException
>       at java.nio.Buffer.checkIndex(Buffer.java:532)
>       at 
> java.nio.ByteBufferAsLongBufferB.get(ByteBufferAsLongBufferB.java:115)
>       at 
> org.apache.tez.runtime.library.common.sort.impl.TezSpillRecord.getIndex(TezSpillRecord.java:101)
>       at 
> org.apache.tez.runtime.library.common.shuffle.Fetcher.getTezIndexRecord(Fetcher.java:596)
>       at 
> org.apache.tez.runtime.library.common.shuffle.Fetcher.doLocalDiskFetch(Fetcher.java:537)
>       at 
> org.apache.tez.runtime.library.common.shuffle.Fetcher.setupLocalDiskFetch(Fetcher.java:518)
>       at 
> org.apache.tez.runtime.library.common.shuffle.Fetcher.callInternal(Fetcher.java:191)
>       at 
> org.apache.tez.runtime.library.common.shuffle.Fetcher.callInternal(Fetcher.java:70)
>       at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> {code}
> The fix disable dynamic parallelism if there is a broadcast edge (including 
> sample file in skewed outer join, scalar followed by skewed join/order by). 
> Also in inner skewed join, the sample file is not needed in join vertex, so 
> it is not necessarily to broadcast it thus disable dynamic parallelism.



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

Reply via email to