-
Notifications
You must be signed in to change notification settings - Fork 6k
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
mark all remaining placeable tasks pending with task dependency manager #2528
mark all remaining placeable tasks pending with task dependency manager #2528
Conversation
Thanks! Do we expect there to be many tasks in the placeable queue? Just wondering if there is some way we can avoid iterating through the queue every time we call |
src/ray/raylet/node_manager.cc
Outdated
@@ -750,6 +750,12 @@ void NodeManager::ScheduleTasks() { | |||
EnqueuePlaceableTask(t); | |||
} | |||
} | |||
|
|||
// All remaining placeable tasks should be registered with the task dependency | |||
// manager. |
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.
Can you add a note here saying that it's ok to call TaskPending
multiple times on the same task?
Maybe the right time to do this is when we put something into the Placeable queue? |
hmm, good point. Other options I can think of are :
Depending on the policy, this queue may be large. |
@robertnishihara , I think it might be worth trying both and comparing performance. I don't have a good feel (yet) for the overhead of |
The overhead of calling |
@stephanie-wang there's no additional timer if we call the method twice on the same task, right? |
@robertnishihara, that's right, the method will just exit if it gets called twice on the same task. The main concern is about calling |
Test PASSed. |
Test FAILed. |
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.
Okay, I think we should just merge this to unblock #2420. The iteration through the placeable
queue is probably okay, since we're doing it anyway in ScheduleTasks()
. We can come back to it if it becomes an issue.
jenkins, retest this please |
@atumanov we can merge it in its current state, but please add a comment describing the potential performance problem. |
Test PASSed. |
Added the TODO, this should be ready to merge when tests pass. |
Test PASSed. |
To summarize some points from a conversation that @atumanov and I had in person, the main confusion I have with this PR is that the developer has to have a lot of knowledge to determine that all tasks are correctly registered with the I'm merging this to unblock the scheduling PR, but we should redesign this to reduce the cognitive load. |
What do these changes do?
This PR registers all remaining placeable tasks with the task dependency manager, to ensure reconstruction policy is not triggered on them.
Related issue number
#2527