20601: Rename Scheduler.maxSupervisors -> Scheduler.supervisorFraction 20601-supervisor-fraction
authorPeter Amstutz <peter.amstutz@curii.com>
Fri, 16 Jun 2023 14:00:25 +0000 (10:00 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Fri, 16 Jun 2023 14:00:25 +0000 (10:00 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

lib/dispatchcloud/scheduler/run_queue.go
lib/dispatchcloud/scheduler/scheduler.go

index e385e758fc20a494cc82c6ff617a70c911d80dfe..63ac4a7b32122e68787bad1b71c1c5a988e97440 100644 (file)
@@ -94,8 +94,8 @@ func (sch *Scheduler) runQueue() {
        }
        sch.mMaxContainerConcurrency.Set(float64(sch.maxConcurrency))
 
-       maxSupervisors := int(float64(sch.maxConcurrency) * sch.maxSupervisors)
-       if maxSupervisors < 1 && sch.maxSupervisors > 0 && sch.maxConcurrency > 0 {
+       maxSupervisors := int(float64(sch.maxConcurrency) * sch.supervisorFraction)
+       if maxSupervisors < 1 && sch.supervisorFraction > 0 && sch.maxConcurrency > 0 {
                maxSupervisors = 1
        }
 
index 70b352d64b88267506d9a7d9c86eab34258a57fc..b1f8ea222329e981334739af30e12bbb1edf7d44 100644 (file)
@@ -46,10 +46,10 @@ type Scheduler struct {
        stop    chan struct{}
        stopped chan struct{}
 
-       last503time    time.Time // last time API responded 503
-       maxConcurrency int       // dynamic container limit (0 = unlimited), see runQueue()
-       maxSupervisors float64   // maximum fraction of "supervisor" containers (these are containers who's main job is to launch other containers, e.g. workflow runners)
-       maxInstances   int       // maximum number of instances the pool will bring up (0 = unlimited)
+       last503time        time.Time // last time API responded 503
+       maxConcurrency     int       // dynamic container limit (0 = unlimited), see runQueue()
+       supervisorFraction float64   // maximum fraction of "supervisor" containers (these are containers who's main job is to launch other containers, e.g. workflow runners)
+       maxInstances       int       // maximum number of instances the pool will bring up (0 = unlimited)
 
        mContainersAllocatedNotStarted   prometheus.Gauge
        mContainersNotAllocatedOverQuota prometheus.Gauge
@@ -62,7 +62,7 @@ type Scheduler struct {
 //
 // Any given queue and pool should not be used by more than one
 // scheduler at a time.
-func New(ctx context.Context, client *arvados.Client, queue ContainerQueue, pool WorkerPool, reg *prometheus.Registry, staleLockTimeout, queueUpdateInterval time.Duration, maxInstances int, maxSupervisors float64) *Scheduler {
+func New(ctx context.Context, client *arvados.Client, queue ContainerQueue, pool WorkerPool, reg *prometheus.Registry, staleLockTimeout, queueUpdateInterval time.Duration, maxInstances int, supervisorFraction float64) *Scheduler {
        sch := &Scheduler{
                logger:              ctxlog.FromContext(ctx),
                client:              client,
@@ -76,7 +76,7 @@ func New(ctx context.Context, client *arvados.Client, queue ContainerQueue, pool
                stopped:             make(chan struct{}),
                uuidOp:              map[string]string{},
                maxConcurrency:      maxInstances, // initial value -- will be dynamically adjusted
-               maxSupervisors:      maxSupervisors,
+               supervisorFraction:  supervisorFraction,
                maxInstances:        maxInstances,
        }
        sch.registerMetrics(reg)