Skip to main content
Version: 1.x

Scheduling Auctions

All hosts within a lattice participate in auctions. An auction is performed when a client of the lattice control interface (e.g. the wash CLI, wadm, or another application) publishes a set of requirements to all hosts within the lattice.

Each host in the lattice will determine whether or not it meets those requirements. If it does, the host will respond to the auction. The primary reason to hold an auction is to use the results for scheduling workloads. A target host for a component or provider can be chosen from among the auction responders.

Specifying Requirements

The set of requirements are defined as a set of label name-value pairs. A host meets these requirements only if all of the name-value pairs are defined on the host.

Examples

Auction requirements are simple but flexible. Consider deploying a machine learning inferencing capability provider to a lattice where some hosts are running on hardware that have attached hardware accelerators. These hosts can be started with a label like gpu=A100, allowing a client to schedule the capability provider on an appropriate host.

Auctions can also be used to ensure that an entire workload is run in a specific area, such as a cloud's availability zone. For example, hosts could be started with labels like az=us-east-1a and az=us-east-1b. This approach can be use to guarantee that traffic for an application is kept local.

In Practice

In production, it's unlikely to perform auctions directly. However, wadm uses similar logic internally to schedule workloads.