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

reservation cleanup: single traverser idea #1261

Open
vsoch opened this issue Aug 1, 2024 · 0 comments
Open

reservation cleanup: single traverser idea #1261

vsoch opened this issue Aug 1, 2024 · 0 comments

Comments

@vsoch
Copy link
Member

vsoch commented Aug 1, 2024

An idea (already mentioned to @milroy and @trws) is to have a single traversal that can handle cleanup of reservations. I can talk about this in context of the easy queue policy.

What we do now is have an m_reserved queue, where we store the flux ids of jobs that are reserved. Easy has a reservation depth of 1, so technically that's only one job (and this optimization not useful there) but if we extend this to other queue policies that have +1 reservation, this approach might be useful. Instead of issuing different cancels for N reservations (flux ids) we might instead have a single call (function, mapping to a traverser, and exposed also as part of our various APIs) that can simply clear all reservations. If the developer user wants to clear a subset, they would use the cancel approach.

This might be an improvement to simplify design - for the policies that want to cancel all of them and are currently storing the ids, we would just make one call to the API. It would also (maybe?) be more efficient (faster?) as a single traversal.

Put up an issue for this if you would, and make a note that we could make it a single traversal that way as well. I haven't looked closely at the code for the other policies, but I suspect I'll want to implement similar in Fluxnetes and will soon.

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

No branches or pull requests

1 participant