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

Adds RapidsBufferHandle as an indirection layer to RapidsBufferId #7512

Merged
merged 15 commits into from
Jan 19, 2023

Conversation

abellina
Copy link
Collaborator

@abellina abellina commented Jan 13, 2023

Contributes to #6864

This PR adds a RapidsBufferHandle which is to be used outside of the spill framework. What I am going for here is that stores only work with RapidsBufferId and the catalogs only deal with RapidsBufferHandle and the mapping between them. The RapidsBufferCatalog owns these handles.

What this PR allows us to do but is not included here is the ability to have multiple handles to a buffer. In a subsequent PR, we will detect a collision and return a new handle, but keep the original RapidsBuffer and its id.

I am posting this to run through CI mostly and to get some feedback. I need to a bit more manual testing.

@abellina
Copy link
Collaborator Author

build

@abellina abellina force-pushed the spill/rapids_buffer_handle branch from ffdf9ba to e190406 Compare January 13, 2023 18:12
@abellina
Copy link
Collaborator Author

build

Copy link
Collaborator

@revans2 revans2 left a comment

Choose a reason for hiding this comment

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

Not done with the review yet...

@abellina
Copy link
Collaborator Author

c123170 and 7dbda44 are unrelated to this PR. I added them here since I was chasing a leak in the tests and found others.

@abellina
Copy link
Collaborator Author

build

@abellina
Copy link
Collaborator Author

I just made a simplification to the design here and will push a commit (and if we are ok with it I'll update the description). Sprinkled throughout the test code I had catalog.makeNewHandle to turn a RapidsBufferId into a RapidsBufferHandle. I have changed things so that now the store just returns the handle.

This means I can remove a bunch of makeNewHandle boilerplate code.

@abellina
Copy link
Collaborator Author

build

@abellina
Copy link
Collaborator Author

build

@abellina
Copy link
Collaborator Author

build

@abellina
Copy link
Collaborator Author

build

1 similar comment
@abellina
Copy link
Collaborator Author

build

@abellina
Copy link
Collaborator Author

build

@abellina
Copy link
Collaborator Author

@revans2 how is this looking? It would be great to get some eyes from @jlowe as well.

@abellina abellina marked this pull request as ready for review January 18, 2023 14:25
revans2
revans2 previously approved these changes Jan 18, 2023
@@ -217,6 +396,10 @@ object RapidsBufferCatalog extends Logging with Arm {
}

private def closeImpl(): Unit = {
if (singleton != null) {
singleton.close()
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: I am confused by this. singleton is a val and it is set at startup. When will it ever be null?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

a good eye, I'll clean this up

@abellina
Copy link
Collaborator Author

build

@abellina
Copy link
Collaborator Author

build

1 similar comment
@abellina
Copy link
Collaborator Author

build

@sameerz sameerz added performance A performance related task/issue reliability Features to improve reliability or bugs that severly impact the reliability of the plugin labels Jan 19, 2023
@abellina abellina merged commit d854710 into NVIDIA:branch-23.02 Jan 19, 2023
@abellina abellina deleted the spill/rapids_buffer_handle branch January 19, 2023 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance A performance related task/issue reliability Features to improve reliability or bugs that severly impact the reliability of the plugin
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants