Hedger Lai created YUNIKORN-3459:
------------------------------------

             Summary: [Core] Decouple ask queue quota accounting from victim 
sizes in calculateVictimsByNode
                 Key: YUNIKORN-3459
                 URL: https://issues.apache.org/jira/browse/YUNIKORN-3459
             Project: Apache YuniKorn
          Issue Type: Improvement
          Components: core - scheduler
            Reporter: Hedger Lai
            Assignee: Hedger Lai
             Fix For: 1.6.0


In {{calculateVictimsByNode()}} ({{preemption.go}}), which evaluates candidate 
victims on a single node, the scheduler accumulates the victim's full resource 
size against {{askQueue}}:

{code:go}
askQueueRemaining := askQueue.GetRemainingGuaranteedResource()
if askQueueRemaining != nil && 
askQueueRemaining.FitInActual(victim.GetAllocatedResource()) {
    askQueue.AddAllocation(victim.GetAllocatedResource())
} else {
    queueSnapshot.AddAllocation(victim.GetAllocatedResource())
    break
}
{code}

However, preempting a victim only allocates the preemptor ask's required 
resources, not the victim's raw size. Charging victim sizes against 
{{askQueue}} incorrectly rejects viable candidates on the node when a victim's 
size exceeds {{askQueueRemaining}} (e.g., an 8 CPU victim for a 2 CPU ask when 
{{askQueueRemaining}} is 2 CPU).

Single-node evaluation should focus strictly on physical node capacity and 
victim queue limits. Cluster-wide ask queue quota preemption belongs to 
{{calculateAdditionalVictims()}}.

h3. Proposed Fix
Decouple {{askQueue}} quota accounting from {{calculateVictimsByNode()}} so 
candidate victims are not rejected based on their raw size exceeding 
{{askQueueRemaining}}.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to