Uh oh!
There was an error while loading. Please reload this page.
[SPARK][SPARK-10842]Eliminate creating duplicate stage while generate job dag - #8923
[SPARK][SPARK-10842]Eliminate creating duplicate stage while generate job dag#8923suyanNone wants to merge 4 commits into
Conversation
SparkQA
commented
Sep 26, 2015
Test build #43051 has finished for PR 8923 at commit
|
suyanNone
commented
Sep 29, 2015
jenkins retest this please |
SparkQA
commented
Sep 29, 2015
Test build #43084 has finished for PR 8923 at commit
|
suyanNone
commented
Oct 14, 2015
jenkins retest this please |
SparkQA
commented
Oct 14, 2015
Test build #43709 has finished for PR 8923 at commit
|
SparkQA
commented
Oct 14, 2015
Test build #43714 has finished for PR 8923 at commit
|
suyanNone
commented
Oct 15, 2015
jenkins retest this please |
SparkQA
commented
Oct 15, 2015
Test build #43772 has finished for PR 8923 at commit
|
squito
commented
Oct 15, 2015
This looks good, but can you add a test case? Mostly I'd like to understand the dependency structure that leads to this (perhaps there are other corner cases related to it we should look at). I was expecting to see one stage as a dependency for multiple later stages, or something like that, but I don't see that even in your "After" image. A test case will also help prevent future regressions |
markhamstra
commented
Nov 1, 2015
I prefer to fix this by changing the result type of |
suyanNone
commented
Nov 3, 2015
@markhamstra@squito We get finalRDD: R7 shufflesdeps, the first is R6 for R6, not added into eh... @markhamstra, change the return type from Stack to Set sounds like good, but the |
markhamstra
commented
Nov 3, 2015
@suyanNone Yes, do check uniqueness, and if that looks fine, then there isn't really a reason to use a Stack instead of Set for |
squito
commented
Nov 3, 2015
I see, so this comes from a "diamond" dependency. I'm not seeing that in your "after" image though -- am I just missing it with too many criss-crossing lines? I'm wondering if there is another bug w/ either the listener events or the visualization. I'm actually wondering if there is any point in building up the |
markhamstra
commented
Nov 3, 2015
@squito I guess the only issue with that is whether we will ever have need in the future to get the ancestor shuffle dependencies without registering them. I doubt it, so I think I'm in favor of simplifying and inlining the code. @kayousterhout ? |
squito
commented
Nov 4, 2015
I spent a bit of time reproducing this. It is actually rather tricky. (a) the shared dependency has to be a shared test("shared shuffle stages with diamond dependencies", ActiveTag) {
valrddA=newMyRDD(sc, 3, Nil).setName("rddA")
valdiamondInput=newShuffleDependency(rddA, newHashPartitioner(2))
valrddTop=newMyRDD(sc, 2, List(diamondInput)).setName("rddTop")
valdiamondTop=newShuffleDependency(rddTop, newHashPartitioner(10))
valrddBottom=newMyRDD(sc, 2, List(diamondInput)).setName("rddBottom")
valdiamondBottom=newShuffleDependency(rddBottom, newHashPartitioner(10))
valrddC=newMyRDD(sc, 2, List(diamondTop, diamondBottom)).setName("rddC")
vallastDep=newShuffleDependency(rddC, newHashPartitioner(3))
valrddD=newMyRDD(sc, 3, List(lastDep)).setName("rddD")
submit(rddD, Array(0, 1, 2))
} |
SparkQA
commented
Nov 13, 2015
Test build #45850 has finished for PR 8923 at commit
|
SparkQA
commented
Nov 13, 2015
Test build #45861 has started for PR 8923 at commit |
shaneknapp
commented
Nov 13, 2015
i will retrigger the build after jenkins maintenance is done. |
shaneknapp
commented
Nov 13, 2015
jenkins, test this please |
SparkQA
commented
Nov 13, 2015
Test build #45866 has finished for PR 8923 at commit
|
SparkQA
commented
Nov 13, 2015
Test build #45867 has finished for PR 8923 at commit
|
There was a problem hiding this comment.
Please return an immutable Set.
SparkQA
commented
Nov 16, 2015
Test build #45975 has finished for PR 8923 at commit
|
SparkQA
commented
Dec 2, 2015
Test build #47042 has finished for PR 8923 at commit
|
squito
commented
Dec 2, 2015
@suyanNone still needs the test case |
suyanNone
commented
Apr 26, 2016
Revert set to Stack, and add test case. |
SparkQA
commented
Apr 26, 2016
Test build #56984 has finished for PR 8923 at commit
|
suyanNone
commented
May 12, 2016
already merge into #12655, mark this closed |
When we traverse RDD, to generate Stage DAG, Spark will skip to judge the stage was added into shuffleIdToStage or not in some condition: get shuffleDep from getAncestorShuffleDependency
Before:


After:

