Skip to content
Run queue

One team's fan-out is one team's queue.

dagweave holds runs before they reach the cluster and lets them out as room appears. A waiting run names its place in the line.

0
Workflow objects on your cluster while a run waits
The problem

Whoever submits first gets the cluster.

One team's fan-out expands into more pods than the cluster has room for, and every other team's steps sit pending behind it.

A semaphore lives in the manifest, written by whoever wrote the workflow. Nothing in there knows one team's work matters more than another's.

The hold

Held before it reaches the cluster

A team has a ceiling on how many runs it can have going at once. Past it the next run waits at dagweave, before the compile and before anything is sent. Your cluster never sees it.

  • Restart dagweave and the line comes back off the database in the same order.
  • A run held for an hour goes to whichever of your clusters can take it then.
The line

A waiting run says what is in front of it

How many of your team's runs go before this one, and how long it has been waiting. Argo Workflows publishes no ordering for a semaphore and dagweave never invents one. It counts its own queue and stops there.

  • Waiting for room and waiting on a lock are two waits, shown in the order they happened.
  • A run that has not gone out can be cancelled. Nothing on the cluster has to be stopped.
Placement

The run takes the highest choice that is open

Rank the clusters you would accept when you submit. The run goes to the highest of them that can take it when its turn comes, and to nothing you did not rank.

  • Beside each cluster: how many runs there are holding a pod no node will take.
  • A cluster passed over for load shows the median pod wait there, against the median where the run went.
  • A run none of its ranked clusters can take waits, and says which ones and why.
Refusals

What waiting cannot fix

A cluster that is offline, or already carrying your team's runs, is a temporary no and the queue waits it out. A ranking you may not dispatch to at all is refused when you press Run.

  • A cluster that cannot take this run stays on the list, with the reason.
Your own controls

The controls in the workflow still hold

Parallelism, priority, semaphores and mutexes are fields in the editor and they compile into the YAML you keep. dagweave decides what is handed to Argo Workflows, and when.

  • A semaphore in one workflow can say nothing about another team's work.
  • Nothing is reserved. A ceiling nobody is using costs the cluster nothing.
Between teams

A team at its ceiling waits behind itself

The hold counts a team's own runs and nobody else's. A team that has filled the cluster is stepped over, and the team behind it goes now rather than after.

  • A semaphore in the manifest cannot tell two teams apart. The thing that made the queue can.
  • Within one team it is oldest first, and a run keeps its place across a restart.

Stop one fan-out taking the cluster.

dagweave is in early access. Leave an email and we will bring you on as we open it up.

We store your email to tell you when we open up. That is the whole use. No third-party tracking, and you can unsubscribe any time.