Skip to content
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

Ensure an executor broadcast is in a single batch [databricks] #10660

Merged

Conversation

NVnavkumar
Copy link
Collaborator

Fixes #10645.

This wraps the GpuShuffleCoalesceIterator into a GpuCoalesceIterator with a coalesce goal of RequireSingleBatch. This ensures that we always get a single batch to use for the broadcast join. Also added an integration test that tweaks the batch size to test this codepath.

… of RequireSingleBatch

Signed-off-by: Navin Kumar <navink@nvidia.com>
Signed-off-by: Navin Kumar <navink@nvidia.com>
@NVnavkumar NVnavkumar requested a review from jlowe April 4, 2024 19:42
@NVnavkumar NVnavkumar self-assigned this Apr 4, 2024
@NVnavkumar NVnavkumar added the bug Something isn't working label Apr 4, 2024
@NVnavkumar NVnavkumar changed the title Ensure an executor broadcast is in a single batch Ensure an executor broadcast is in a single batch [databricks] Apr 4, 2024
@NVnavkumar
Copy link
Collaborator Author

build

Signed-off-by: Navin Kumar <navink@nvidia.com>
Signed-off-by: Navin Kumar <navink@nvidia.com>
@NVnavkumar
Copy link
Collaborator Author

build

Signed-off-by: Navin Kumar <navink@nvidia.com>
@NVnavkumar
Copy link
Collaborator Author

build

Comment on lines +325 to +327
"""
select /*+ BROADCAST(df_school) */ * from df, df_school where df.id == df_school.id
"""
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: PySpark API looks nicer and would not require resorting to view registration along the lines

df.join(broadcast(df_school), df.id == df_school.id) 

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Understood, but this test requires a join hint to ensure a broadcast hash join is used in this test.

Copy link
Collaborator

Choose a reason for hiding this comment

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

jenkins/databricks/test.sh Outdated Show resolved Hide resolved
Signed-off-by: Navin Kumar <navink@nvidia.com>
@NVnavkumar
Copy link
Collaborator Author

build

@NVnavkumar NVnavkumar merged commit c4f5c65 into NVIDIA:branch-24.04 Apr 12, 2024
42 of 43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] java.lang.IllegalStateException: Expected to only receive a single batch
3 participants