Versions in this module Expand all Collapse all v0 v0.13.1 Oct 2, 2024 v0.13.0 Sep 30, 2024 Changes in this version + func PreemptedJobsFromSchedulerResult(sr *SchedulerResult) []*jobdb.Job + func ScheduledJobsFromSchedulerResult(sr *SchedulerResult) []*jobdb.Job + type CandidateGangIterator struct + func NewCandidateGangIterator(queueRepository fairness.QueueRepository, ...) (*CandidateGangIterator, error) + func (it *CandidateGangIterator) Clear() error + func (it *CandidateGangIterator) OnlyYieldEvicted() + func (it *CandidateGangIterator) OnlyYieldEvictedForQueue(queue string) + func (it *CandidateGangIterator) Peek() (*schedulercontext.GangSchedulingContext, float64, error) + type Evictor struct + func NewFilteredEvictor(jobRepo JobRepository, nodeDb *nodedb.NodeDb, nodeIdsToEvict map[string]bool, ...) *Evictor + func NewNodeEvictor(jobRepo JobRepository, nodeDb *nodedb.NodeDb, ...) *Evictor + func NewOversubscribedEvictor(jobRepo JobRepository, nodeDb *nodedb.NodeDb) *Evictor + func (evi *Evictor) Evict(ctx *armadacontext.Context, nodeDbTxn *memdb.Txn) (*EvictorResult, error) + type EvictorResult struct + AffectedNodesById map[string]*internaltypes.Node + EvictedJctxsByJobId map[string]*schedulercontext.JobSchedulingContext + NodeIdByJobId map[string]string + func (er *EvictorResult) SummaryString() string + type FairSchedulingAlgo struct + func NewFairSchedulingAlgo(config configuration.SchedulingConfig, maxSchedulingDuration time.Duration, ...) (*FairSchedulingAlgo, error) + func (l *FairSchedulingAlgo) Schedule(ctx *armadacontext.Context, txn *jobdb.Txn) (*SchedulerResult, error) + type GangScheduler struct + func NewGangScheduler(sctx *context.SchedulingContext, ...) (*GangScheduler, error) + func (sch *GangScheduler) Schedule(ctx *armadacontext.Context, gctx *context.GangSchedulingContext) (ok bool, unschedulableReason string, err error) + type InMemoryJobIterator struct + func NewInMemoryJobIterator(jctxs []*schedulercontext.JobSchedulingContext) *InMemoryJobIterator + func (it *InMemoryJobIterator) Next() (*schedulercontext.JobSchedulingContext, error) + type InMemoryJobRepository struct + func NewInMemoryJobRepository() *InMemoryJobRepository + func (repo *InMemoryJobRepository) EnqueueMany(jctxs []*schedulercontext.JobSchedulingContext) + func (repo *InMemoryJobRepository) GetExistingJobsByIds(jobIds []string) []*jobdb.Job + func (repo *InMemoryJobRepository) GetJobIterator(queue string) JobContextIterator + func (repo *InMemoryJobRepository) GetQueueJobIds(queue string) []string + type JobContextIterator interface + Next func() (*schedulercontext.JobSchedulingContext, error) + type JobQueueIteratorAdapter struct + func (it *JobQueueIteratorAdapter) Next() (*jobdb.Job, error) + type JobRepository interface + GetById func(id string) *jobdb.Job + QueuedJobs func(queueName string) jobdb.JobIterator + type MinimalQueue struct + func (q MinimalQueue) GetAllocation() schedulerobjects.ResourceList + func (q MinimalQueue) GetWeight() float64 + type MinimalQueueRepository struct + func NewMinimalQueueRepositoryFromSchedulingContext(sctx *schedulercontext.SchedulingContext) *MinimalQueueRepository + func (qr *MinimalQueueRepository) GetQueue(name string) (fairness.Queue, bool) + type MultiJobsIterator struct + func NewMultiJobsIterator(its ...JobContextIterator) *MultiJobsIterator + func (it *MultiJobsIterator) Next() (*schedulercontext.JobSchedulingContext, error) + type PreemptingQueueScheduler struct + func NewPreemptingQueueScheduler(sctx *schedulercontext.SchedulingContext, ...) *PreemptingQueueScheduler + func (sch *PreemptingQueueScheduler) Schedule(ctx *armadacontext.Context) (*SchedulerResult, error) + type QueueCandidateGangIteratorItem struct + type QueueCandidateGangIteratorPQ []*QueueCandidateGangIteratorItem + func (pq *QueueCandidateGangIteratorPQ) Pop() any + func (pq *QueueCandidateGangIteratorPQ) Push(x any) + func (pq QueueCandidateGangIteratorPQ) Len() int + func (pq QueueCandidateGangIteratorPQ) Less(i, j int) bool + func (pq QueueCandidateGangIteratorPQ) Swap(i, j int) + type QueueScheduler struct + func NewQueueScheduler(sctx *schedulercontext.SchedulingContext, ...) (*QueueScheduler, error) + func (sch *QueueScheduler) Schedule(ctx *armadacontext.Context) (*SchedulerResult, error) + type QueuedGangIterator struct + func NewQueuedGangIterator(sctx *schedulercontext.SchedulingContext, it JobContextIterator, ...) *QueuedGangIterator + func (it *QueuedGangIterator) Clear() error + func (it *QueuedGangIterator) Next() (*schedulercontext.GangSchedulingContext, error) + func (it *QueuedGangIterator) Peek() (*schedulercontext.GangSchedulingContext, error) + type QueuedJobsIterator struct + func NewQueuedJobsIterator(ctx *armadacontext.Context, queue string, repo JobRepository) *QueuedJobsIterator + func (it *QueuedJobsIterator) Next() (*schedulercontext.JobSchedulingContext, error) + type SchedulerResult struct + NodeIdByJobId map[string]string + PreemptedJobs []*context.JobSchedulingContext + ScheduledJobs []*context.JobSchedulingContext + SchedulingContexts []*context.SchedulingContext + type SchedulingAlgo interface + Schedule func(*armadacontext.Context, *jobdb.Txn) (*SchedulerResult, error)