Inputs to an assignment
The current production scheduler uses:- the worker set and the latest reported worker status;
- the chunks discovered in the configured dataset storage locations;
- each chunk’s size, weight, and optional minimum worker version;
- configured worker capacity, storage saturation, and minimum replication.
What can change an assignment
An assignment can change when:- a worker joins or leaves the worker set;
- new chunks appear in a dataset;
- a worker version changes which chunks it can serve;
- storage capacity, saturation, minimum replication, or chunk weights change.
How nodes apply it
The published Network state identifies the current compressed assignment. Workers and Portal poll that state and fetch a new artifact when its identifier changes. A worker looks up its own peer ID, calculates the chunks it should hold, and starts the required downloads. Portal reads chunk ranges and worker peer IDs to construct its routing view. The assignment is therefore both a storage plan and a routing input, although workers and Portal read different fields from it.The scheduler repository also contains a feature-gated multistep scheduler and
design documents. Those documents explicitly mark production wiring as work in
progress. This page describes the current production path in
src/scheduling.rs.Implementation sources
- Production scheduling code
- Current reshuffling analysis
- Assignment format and transport
- Worker assignment polling