Victor Zhou created YUNIKORN-3139:
-------------------------------------

             Summary: Preemption throughput constrained by incorrect counter 
decrement logic
                 Key: YUNIKORN-3139
                 URL: https://issues.apache.org/jira/browse/YUNIKORN-3139
             Project: Apache YuniKorn
          Issue Type: Bug
            Reporter: Victor Zhou


h2. Summary

The preemption attempt counter (`preemptAttemptsRemaining`) is decremented 
regardless of whether the preemption attempt succeeds or not. When a queue has 
many allocation asks requiring preemption, the scheduler frequently encounters 
asks that have already triggered preemption in previous cycles. These duplicate 
attempts fail precondition checks due to:

1. Frequency throttling: 15-second minimum interval between preemption attempts 
(`preemptAttemptFrequency`)
2. Already triggered: The ask has previously triggered preemption 
(`HasTriggeredPreemption()` returns true)

Since the counter is decremented before these precondition checks, it gets 
wasted on asks that cannot actually trigger preemption. This severely limits 
preemption throughput for large-scale applications, causing multi-hour delays 
for applications with 1000+ pods.
h2. How to reproduce

Environment

- Cluster at near-full capacity with many low-priority batch jobs
- High-priority Spark job submitted: 1 driver + 1000+ executors
- Sufficient preemptable resources available

Expected Behavior: 
- Executors should trigger preemption of low-priority jobs
- Full allocation within 25-30 minutes

Actual Behavior:
- Executors took over 2 hour to allocate
- Preemption proceeded extremely slowly despite available victims

 

Potential Root Cause

Preemption throughput bottleneck:
- maxPreemptionsPerQueue = 10 attempts per scheduling cycle
- Counter decremented on precondition failures (no actual preemption attempted)

https://github.com/apache/yunikorn-core/blob/master/pkg/scheduler/objects/application.go#L1017
h2. Proposed solution

Only decrement the counter when a preemption attempt actually occurs



--
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