KAI-JAY TU created YUNIKORN-3388:
------------------------------------

             Summary: Update quota_preemptor design doc to match current 
implementation
                 Key: YUNIKORN-3388
                 URL: https://issues.apache.org/jira/browse/YUNIKORN-3388
             Project: Apache YuniKorn
          Issue Type: Improvement
          Components: core - scheduler
            Reporter: KAI-JAY TU
            Assignee: KAI-JAY TU
             Fix For: 1.10.0


While working on YUNIKORN-3248 (user guide update), three descriptions in the
design doc docs/design/quota_preemptor.md were found to no longer match the
current implementation. This was acknowledged by @manirajv06 on 
apache/yunikorn-site#570
as a follow-up item.

Reference: apache/yunikorn-site master 66ef06c, docs/design/quota_preemptor.md

1) Timer behavior on config changes (around line 110)
   Design doc says:
     "In case of any such changes, timers reset and start again from the
      beginning."
   Implementation actually does:
     - Delay change: delta adjustment, startTime += (newDelay - oldDelay).
     - Consecutive quota decreases: preserves the earliest startTime instead
       of resetting.
   References: internalQuotaPreemption() in scheduler.go, quota_preemptor.go,
   tryAcquirePreemption() in queue.go.

2) Delay format and placement (lines 74, 94, 107)
   Design doc shows the delay as an integer in seconds under the resources:
   block, for example:
     resources:
       max: \{memory: 10G}
       quota.preemption.delay: 7200
   Implementation actually uses Go time.Duration format under queue
   properties:, for example:
     properties:
       quota.preemption.delay: 2h

3) Impact of Restart section (around lines 113-115)
   Design doc only says the timer "would start again from the beginning"
   after restart. It does not explain that during recovery,
   IncAllocatedResource() triggers setPreemptionTime() when usage > max,
   which effectively restarts the countdown from the recovery moment.

Acceptance criteria:
- docs/design/quota_preemptor.md updated so the three items above match the
  current implementation.
- Sample YAML in the doc reflects properties: placement and time.Duration
  format.
- Restart section explains the setPreemptionTime() trigger during recovery.

Not in scope:
- User guide (already covered by YUNIKORN-3248 / apache/yunikorn-site#570).
- Implementation changes.



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