Skip to content

Conversation

@brennonyork
Copy link

Changed method invocation of 'diff' to match that of 'innerJoin' and 'leftJoin' from VertexRDD[VD] to RDD[(VertexId, VD)]. This change maintains backwards compatibility and better unifies the VertexRDD methods to match each other.

…'leftJoin' from VertexRDD[VD] to RDD[(VertexId, VD)]
@brennonyork
Copy link
Author

/cc @ankurdave

@AmplabJenkins
Copy link

Can one of the admins verify this patch?

@srowen
Copy link
Member

srowen commented Feb 23, 2015

ok to test

@SparkQA
Copy link

SparkQA commented Feb 23, 2015

Test build #27863 has started for PR 4733 at commit f18356e.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Feb 23, 2015

Test build #27863 has finished for PR 4733 at commit f18356e.

  • This patch fails MiMa tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@AmplabJenkins
Copy link

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/27863/
Test FAILed.

@brennonyork
Copy link
Author

@srowen is there any way to re-run this test without the MiMa tests?? The entire point of this PR is to change the public methods even though they wouldn't affect any calling implementations and I'm, honestly, unsure if that means I need to represent that in any way / shape / form in the code. Thoughts?

@srowen
Copy link
Member

srowen commented Feb 24, 2015

It's a public API, right? I don't see that it or the class is private[graphx] so I think MiMa has a point. You shouldn't remove the method, but add a new one. If you believe the existing one should be deprecated you can do that. But yeah I think it's time for @ankurdave or maybe @jegonzal to weigh in.

PS to answer the question, you can't disable the MiMa checks but would instead add to your PR some new MiMa excludes to tell it this is OK, if you did have to override MiMa.

@ankurdave
Copy link
Contributor

Though this is source-compatible, MiMa is correct that it breaks binary compatibility. It might be best to add the more general version as an overload without deprecating the more specific version. The code duplication will be small and I think it's worth it to preserve binary compatibility.

@SparkQA
Copy link

SparkQA commented Feb 24, 2015

Test build #27898 has started for PR 4733 at commit 93186f3.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Feb 24, 2015

Test build #27898 has finished for PR 4733 at commit 93186f3.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@AmplabJenkins
Copy link

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/27898/
Test FAILed.

@brennonyork
Copy link
Author

retest this please

@SparkQA
Copy link

SparkQA commented Feb 24, 2015

Test build #27910 has started for PR 4733 at commit 93186f3.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Feb 24, 2015

Test build #27910 has finished for PR 4733 at commit 93186f3.

  • This patch fails MiMa tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@AmplabJenkins
Copy link

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/27910/
Test FAILed.

@brennonyork
Copy link
Author

Any idea why its failing now? Issue is:

[error]  * abstract method diff(org.apache.spark.rdd.RDD)org.apache.spark.graphx.VertexRDD in class org.apache.spark.graphx.VertexRDD does not have a correspondent in old version

I would have assumed MiMa would be okay with this since its merely adding a new method, but I might be wrong. A series of Google searches and diving into MiMa isn't helping either. Should I just add the MiMa exclude? That feels wrong in this case.

@srowen
Copy link
Member

srowen commented Feb 24, 2015

@brennonyork it has a point; you've added a new abstract method to an abstract class. This would cause any class that extends the previous version to fail since it does not implement the new method.

@brennonyork
Copy link
Author

@srowen thanks for that, completely missed that!

If I add the MiMa exclude in this case to resolve this issue then shouldn't we deprecate the diff(other: VertexRDD[VD]) as we don't want to propagate two versions of diff in the abstract class (i.e. make all downstream impl's take care of two diff methods)? Either way the MiMa exclude is in and tested with both methods so I'll push that up now. If we'd rather deprecate the old version of diff at this point let me know and I can push up that fix!

@SparkQA
Copy link

SparkQA commented Feb 25, 2015

Test build #27924 has started for PR 4733 at commit 2c678c6.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Feb 25, 2015

Test build #27924 has finished for PR 4733 at commit 2c678c6.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/27924/
Test PASSed.

@ankurdave
Copy link
Contributor

The VertexRDD interface is not intended to be implemented by users. I just noticed this isn't explicitly documented, but since VertexRDD references ShippableVertexPartition, which is private[graphx], users should in any case get a compile error when they try to implement it.

So LGTM aside from a minor comment: I don't think it makes sense to deprecate the old version, because users don't have the option of switching to the new version unless they add the noise for widening the argument type.

@brennonyork
Copy link
Author

Roger, that makes good sense! Thanks for the update @ankurdave. Since the patch isn't deprecating anything I'd say we're good to merge in then? Just let me know if anything else needs done!

@ankurdave
Copy link
Contributor

@brennonyork Looks like #4705 introduced a minor merge conflict, so it would be great if you could merge that in.

It seems best to use the definition of diff(VertexRDD[VD]) from there, since I just noticed that this PR does some unnecessary work -- calling VertexRDD(other) will always rebuild the vertex partitions even if that's not required.

Also, it would be good to remove the remaining comment about deprecation.

Thanks!

@AmplabJenkins
Copy link

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28586/
Test FAILed.

@brennonyork
Copy link
Author

jenkins, retest this please

@SparkQA
Copy link

SparkQA commented Mar 13, 2015

Test build #28596 has started for PR 4733 at commit 398ddb4.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Mar 14, 2015

Test build #28596 has finished for PR 4733 at commit 398ddb4.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28596/
Test PASSed.

@SparkQA
Copy link

SparkQA commented Mar 14, 2015

Test build #28600 has started for PR 4733 at commit 398ddb4.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Mar 14, 2015

Test build #28600 has finished for PR 4733 at commit 398ddb4.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28600/
Test PASSed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: keep this with other Spark imports

@SparkQA
Copy link

SparkQA commented Mar 14, 2015

Test build #28610 has started for PR 4733 at commit f86375c.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Mar 14, 2015

Test build #28610 has finished for PR 4733 at commit f86375c.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28610/
Test PASSed.

@SparkQA
Copy link

SparkQA commented Mar 14, 2015

Test build #28616 has started for PR 4733 at commit b9274af.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Mar 15, 2015

Test build #28616 has finished for PR 4733 at commit b9274af.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@AmplabJenkins
Copy link

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28616/
Test FAILed.

@brennonyork
Copy link
Author

jenkins, retest this please

@SparkQA
Copy link

SparkQA commented Mar 15, 2015

Test build #28620 has started for PR 4733 at commit b9274af.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Mar 15, 2015

Test build #28620 has finished for PR 4733 at commit b9274af.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@AmplabJenkins
Copy link

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28620/
Test FAILed.

@SparkQA
Copy link

SparkQA commented Mar 15, 2015

Test build #28631 has started for PR 4733 at commit e800f08.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Mar 15, 2015

Test build #28631 has finished for PR 4733 at commit e800f08.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28631/
Test PASSed.

@ankurdave
Copy link
Contributor

LGTM, thanks @brennonyork! Merging into master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants