[ 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)