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

[DSIP-55][Master] Separate the waiting dispatched task into different queue by worker group #16260

Open
2 tasks done
Tracked by #14102
ruanwenjun opened this issue Jul 2, 2024 · 0 comments
Open
2 tasks done
Tracked by #14102
Assignees

Comments

@ruanwenjun
Copy link
Member

ruanwenjun commented Jul 2, 2024

Search before asking

  • I had searched in the DSIP and found no similar DSIP.

Motivation

Right now, in master DS will use one single thread to dispatch the tasks. The problem is all tasks are stored at one waiting queue, if a task dispatch failed then it will be moved to the end of waiting queue.

There exist a case, if a worker is overload at one worker group, and A, B ,C are using the worker, the priority is A > B > C, if the A dispatched failed, then begin to dispatch B, but the worker changed from overload to normal, then B will be dispatched successfully, this will caused problem, since priority of A is higher than B.

Design Detail

Different worker group use different waiting queue.
image

We need to make one waiting queue should only be handled by one dispatch thread. Once a task dispatched failed it should be put back to its worker group queue.

Compatibility, Deprecation, and Migration Plan

No response

Test Plan

No response

Code of Conduct

@ruanwenjun ruanwenjun added the DSIP label Jul 2, 2024
@ruanwenjun ruanwenjun self-assigned this Jul 2, 2024
@SbloodyS SbloodyS changed the title [DSIP-47][Master] Separate the waiting dispatched task into different queue by worker group Jul 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
1 participant