[ 
https://issues.apache.org/jira/browse/YUNIKORN-3139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated YUNIKORN-3139:
-------------------------------------
    Labels: pull-request-available  (was: )

> 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
>            Assignee: Manikandan R
>            Priority: Critical
>              Labels: pull-request-available
>
> 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