[Object Store] Push Manager: round for object manager client and FIFO for object #34269
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why are these changes needed?
This PR mainly achieves the rotation of
PushManager
among target nodes but implements FIFO for all objects within each target node. There are two objectives/purposes as follows:After the arguments that the previous task depends on are pulled locally, the Raylet will allocate resources. In the process of spilling out subsequent tasks that are still pulling parameters, implementing FIFO can reduce unnecessary data transmission.
When there are many objects that need to be pushed, the function ScheduleRemainingPushes will try to push many objects that no longer have any chunks remaining, resulting in higher complexity of the internal loop. It can be illustrated by the following example.
ray stop -f && python test.py 1
Related issue number
Closes #34270
Checks
git commit -s
) in this PR.scripts/format.sh
to lint the changes in this PR.method in Tune, I've added it in
doc/source/tune/api/
under thecorresponding
.rst
file.