AssignmentPlan
What a policy would do with a hypothetical number of workers: which containers each of them would hold, and how loaded that would leave them.
Nebula · Packages/com.1by3.nebula/Runtime/Orchestrator/AssignmentPlanner.cspublic sealed class AssignmentPlanWhat a policy would do with a hypothetical number of workers: which containers each of them would hold, and how loaded that would leave them. The scaler compares the plan at N, N+1 and N-1 instead of guessing from an average (WorkerScaler).
Fields
WorkerCount
public int WorkerCount;How many workers the plan was drawn for.
Containers
public readonly Dictionary<string, List<string>> Containers = new Dictionary<string, List<string>>(StringComparer.Ordinal);Synthetic worker id -> the containers it would hold.
Load
public readonly Dictionary<string, float> Load = new Dictionary<string, float>(StringComparer.Ordinal);Synthetic worker id -> predicted utilization (the sum of its containers' attributed load).
Peak
public float Peak;The busiest worker's predicted utilization.
Mean
public float Mean;Mean predicted utilization across the plan's workers.
PeakWorker
public string PeakWorker = "";The busiest worker in the plan.
HeaviestContainer
public string HeaviestContainer = "";The heaviest single container on the busiest worker: the one to blame when splitting does not help.
HeaviestUtilization
public float HeaviestUtilization;That container's attributed utilization.
Unassigned
public int Unassigned;Containers the policy left unassigned (a policy that ignores runtime containers, say).
Moves
public readonly List<AssignmentMove> Moves = new List<AssignmentMove>();What the policy did in the dry run and why, when it explains itself (IExplainsAssignment); empty for a policy that does not. This is what makes a predicted layout readable on the dashboard rather than a bare list of container ids.