FICCDocumentation
nightly prerelease / Version 0.3.0.dev1Project website
Reference library
Infrastructure SDK
On this page
  1. Package entry point
  2. Selection protocol

Workload scheduler providers#

A scheduler is a trusted installation package in the controller environment. It proposes an ordering of queued project jobs. The host owns authorization, resource reservations, durable attempt state, dispatch and lease renewal. A scheduling proposal cannot grant access or select arbitrary runtime commands.

Package entry point#

Register one entry point in the ficc.scheduler group. Its name matches the administrator's configured provider value. The loaded module exposes API_VERSION = 1 and create(configuration). The returned object implements select(request) and close(). Configuration belongs to the provider; validate it before returning the instance.

The supplied fair scheduler is a separate Python distribution. Installing FICC does not install or activate it implicitly. The controller reads private workload-provider.json at startup. The workloads-configure command validates configuration with the installed provider and restores the previous configuration if validation fails.

Selection protocol#

select receives an object with exactly these fields:

Field Content
version Integer 1.
pending Objects with id, project_id and created_at for queued, uncancelled jobs.
active Objects with attempt id, job_id and project_id for held attempts.

Return a list of at most 64 distinct pending job IDs. An empty list is valid. Unknown, duplicate or malformed identities are refused before dispatch. No payload, input contents, environment values or credentials enter this interface.

Active accounting includes prepared, running, completed and unknown attempts until their resources are released. Explicitly abandoned attempts from revoked nodes leave scheduler concurrency accounting, while the old node reservation remains.

The host can withhold temporarily refused jobs from the next selection call. It rechecks each proposed job against fresh project authority, policy, local offer, runtime identity, available capacity and independently bounded storage. One placement per node snapshot forces fresh capacity observation before further admission. New placements also require the executor's durable admission contract and bind its current ledger identity. A replacement ledger cannot inherit held reservations. The provider receives updated active records on later calls.

Keep selection bounded and deterministic for the supplied inputs. Do not perform network requests or start jobs inside the scheduler. Selection failure leaves jobs queued with a visible scheduler error. Closing the provider must release its own resources and must not mutate workload execution state.

The supplied scheduler rotates across projects and orders jobs by age within each project. Its explicit global and project concurrency limits are deployment choices. Alternative scheduling and quota policies belong in other installed packages.

FICC / DocumentationBack to top

Search documentation

Press Escape to close

Loading search...

    Reading appearance

    Choose colours, surfaces and text independently. These settings are saved for this documentation site in this browser.

    Flat surfaces remove decorative materials. Typography is a separate choice. Increased contrast uses the Contrast palette. System forced colours always take precedence.