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
scheduler: enhance ReservationNominator to support preemption #1804
scheduler: enhance ReservationNominator to support preemption #1804
Conversation
/hold need more testing |
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #1804 +/- ##
==========================================
+ Coverage 66.48% 66.50% +0.02%
==========================================
Files 396 395 -1
Lines 43754 43820 +66
==========================================
+ Hits 29088 29144 +56
- Misses 12510 12516 +6
- Partials 2156 2160 +4
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
fe492c8
to
c2c9e49
Compare
c2c9e49
to
10bcfb1
Compare
10bcfb1
to
03882c7
Compare
03882c7
to
cb1b22e
Compare
Signed-off-by: Joseph <joseph.t.lee@outlook.com>
cb1b22e
to
95a8b5e
Compare
/hold cancel |
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.
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: buptcozy The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
…nator-sh#1804) Signed-off-by: Joseph <joseph.t.lee@outlook.com>
Ⅰ. Describe what this PR does
The
ReservationNominator
interface and its implementation have been enhanced to support preemption scenarios.When performing preemption at the job granularity level, many Pods will initiate preemption in the PostFilter stage. As each Pod secures resources, the
ReservationNominator.NominateReservation
method is called to elect a Reservation. TheReservationNominator.AddNominatedReservation
and PreFilterExtension.AddPod methods are then used to record the Request quantity. This ensures that the preemption results of one Pod can be perceived by the next Pod during its preemption process.When a new scheduling cycle begins, there is a possibility that a Pod awaiting scheduling may trigger the PreFilterExtension.AddPod again. Since the
AddNominatedReservation
method has already recorded that the Pod has reserved resources on a certain node, it ensures that this reserved resource will not be taken by lower-priority Pods.Ⅱ. Does this pull request fix one issue?
Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist
make test