-
Notifications
You must be signed in to change notification settings - Fork 126
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
Queue Limits By Priority #1697
Queue Limits By Priority #1697
Conversation
…limit-by-priority
…limit-by-priority
…limit-by-priority
@@ -248,7 +252,7 @@ type JetstreamConfig struct { | |||
|
|||
type QueueManagementConfig struct { | |||
AutoCreateQueues bool | |||
DefaultPriorityFactor queue.PriorityFactor |
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.
I changed this because it was causing a circular reference. Essentially other armada module imported by the configuration
package is problematic because configuration is imported everywhere. In this case all we were using this for was a type alias so it shouldn't really matter.
@@ -6,8 +6,6 @@ import ( | |||
"math/rand" | |||
"time" | |||
|
|||
v1 "k8s.io/api/core/v1" |
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.
this is the old scheduler where I have removed the preemption logic
@@ -108,13 +108,12 @@ func matchAnyNodeTypeAllocation( | |||
job *api.Job, | |||
nodeAllocations []*nodeTypeAllocation, | |||
alreadyConsumed nodeTypeUsedResources, | |||
supportedPriorityClasses map[string]int32, | |||
) (nodeTypeUsedResources, bool, error) { | |||
newlyConsumed := nodeTypeUsedResources{} | |||
|
|||
for _, podSpec := range job.GetAllPodSpecs() { |
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.
This is the old scheduler where I have removed preemption;
// TODO Is this all validation that needs to be done? | ||
func validateArmadaConfig(config *configuration.ArmadaConfig) error { | ||
// TODO: Is this all validation that needs to be done? | ||
func validateCancelJobsBatchSizeConfig(config *configuration.ArmadaConfig) error { |
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.
I've renamed this function because it claimed to validate all the armada config but all it actually did was check that the cancelJobsBatchSize
was greater than 0! Clealry we need to have a better strategy for validating our configuration but that's a job for another day.
Co-authored-by: JamesMurkin <jamesmurkin@hotmail.com>
Implements queue limits by priority. This enables lower (preemptible) pirotiy classes to be given higher queue limits in order to incentivize preemption.
Preemption configuration is now of the form:
As part of this PR I removed the preemption logic from the old scheduler.