Skip to content

[Coscheduling] make podGroup a queueing unit #658

@kerthcet

Description

@kerthcet

Area

  • Scheduler
  • Controller
  • Helm Chart
  • Documents

Other components

No response

What happened?

Currently, we use queuedPodInfo's InitialAttemptTimestamp in ordering, it's a static value which will lead to starvation, earlier submitted podGroups will always block the queue if unschedulable(backoff queue can somehow mitigate this but not solve this problem).

	creationTime1 := cs.pgMgr.GetCreationTimestamp(podInfo1.Pod, *podInfo1.InitialAttemptTimestamp)
	creationTime2 := cs.pgMgr.GetCreationTimestamp(podInfo2.Pod, *podInfo2.InitialAttemptTimestamp)

What I want to do is make podGroup's queueing timestamp as a criteria, it will be refreshed together with a new scheduling cycle, the general idea is we'll maintain a podGroups cache in coscheduling. I'll write an updated KEP to detail the design.

What did you expect to happen?

  1. pods of podGroup will be ordered based on the podGroup's queueing timestamp
  2. podGroup's queueing timestamp will be refreshed in a new scheduling cycle
  3. pods of the same podGroup will be popped out sequentially as today

How can we reproduce it (as minimally and precisely as possible)?

No response

Anything else we need to know?

Related issues:
#110
#429

Kubernetes version

None

Scheduler Plugins version

None

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions