-
Notifications
You must be signed in to change notification settings - Fork 232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update partitioning logic in ShuffledBatchRDD #319
Conversation
@abellina Could you take a look when you get a chance? This is one of the changes I had to make when working on the AQE POC. |
build |
I'll try and chime in this weekend on this change. |
To me at high level this looks fine. It is echoing the changes made in the row-based |
@andygrove I haven't had time to test this yet, but I am fairly sure it will fail if the shuffle plugin is enabled, I'll try this today with some help from you likely (not sure what I can run with it enabled). Here's what I am thinking: the writes are going to be cached and stamped as rapids blocks, and then the reads are going to ignore this all together (the |
@andygrove here's the issue I mentioned on the read side: #362. I think it's a separate issue, that should come with tests also (somehow) |
build |
@@ -203,7 +204,12 @@ abstract class RapidsShuffleInternalManagerBase(conf: SparkConf, isDriver: Boole | |||
logWarning("Rapids Shuffle Plugin is falling back to SortShuffleManager because " + | |||
"external shuffle is enabled") | |||
} | |||
fallThroughDueToExternalShuffle | |||
val isAdaptiveEnabled = conf.get(SQLConf.ADAPTIVE_EXECUTION_ENABLED.key, "false").toBoolean |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a stringDefault
value in SQLConf.ADAPTIVE_EXECUTION_ENABLED
which should let us stay up to date with the default if it changes. The main problem with that is that we are compiling this against one specific version of spark so if the default changes from one version to another this will not stay up to date.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is something that we could potentially do in the shim layer though so that it does compile against each version we support. I'll look into doing that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andygrove we should wait on this PR then? Or you are thinking a different PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll add it to this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, this is a boolean config so it has to have a value and it doesn't make sense to check for a default value. I'll remove the default part instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is updated now.
sql-plugin/src/main/scala/org/apache/spark/sql/rapids/RapidsShuffleInternalManager.scala
Outdated
Show resolved
Hide resolved
build |
Signed-off-by: Andy Grove <andygrove@nvidia.com>
e3c7495
to
02a48b6
Compare
build |
There was a build failure with the 3.1.0 shim:
Seems to be related to this recent Spark commit: |
Signed-off-by: Andy Grove <andygrove@nvidia.com>
Signed-off-by: Andy Grove <andygrove@nvidia.com>
build |
Signed-off-by: Andy Grove <andygrove@nvidia.com>
Signed-off-by: Andy Grove <andygrove@nvidia.com>
This PR updates the logic in ShuffledBatchRDD to reflect recent changes in Spark's ShuffledRowRDD related to AQE support.
Note that there are oustanding questions about how these changes affect UCX, so UCX is disabled for now when AQE is enabled.