Overview

Scheduling refers to the policies and algorithms used by Tractor to decide the order in which tasks are assigned to blades, and more generally to the enforcement of rules governing priorities, permissions, and capability requirements.|
 

Dispatching Tiers

Each job on the queue is associated with a dispatching tier. Tiers provide the highest level job dispatching control, jobs in high-valued tiers are always considered before those in low-valued tiers. For example, jobs in a "rush" tier can be handled before a "batch" tier. Within each tier jobs are sorted by the tier's Scheduling Mode (below).

New jobs are placed into the "default" tier when they are submitted, unless explicitly set at spool time (e.g. "tractor-spool --tier=batch ..."). Jobs can be moved to a different tier manually in the Dashboard. For example, during a crisis it may be useful to move several important jobs to a higher tier while leaving their job priorities unchanged to preserve sorting relative to each other. Each tier can also be pausedindividually in the Dashboard, so dispatching across entire groups of jobs can be temporarily suspended or enabled -- for example, general dispatching can be paused while a series of administrative jobs are allowed to proceed. The Dashboard also provides some controls for filtering and sorting jobs based on tiers.

Tier membership is stored on each job as a simple tier name attribute. The tier definitions themselves are located in tractor.config with other policy settings.

Tier names, and the number of tiers defined, are arbitrary and can be changed as desired. Tractor will ensure that a tier named "default" always exists, even if one is not defined explicitly. Other tier names and definitions are not required. If a job refers to a tier name that does not exist then it is handled according to the "default" tier settings.

NOTE: Each tier can have a different scheduling policy, as described below. If a tier does not specify a policy, then the "JobSchedulingMode" fallback value is used.

 "JobSchedulingMode": "P+ATCL+RR",

 "DispatchTiers": {
    "admin":   {"priority": 100.0, "scheduling": "P+FIFO"},
    "rush":    {"priority":  75.0},
    "preview": {"priority":  60.0, "scheduling": "P+CHKPT"},
    "default": {"priority":  50.0},
    "batch":   {"priority":  25.0}
 },

Scheduling Modes

Tractor supports several job queue sorting modes that lie at the heart of the main task assignment scheduling system. Most studios find that P+FIFO is a good match to a mostly-batch style of jobs, while P+ATCL+RR is good for a mostly-interactive mix. The P+ATCL scheme is often a reasonable middle ground. In all of these modes, simple job priority is the primary factor determining job processing order. Be sure to review the Dispatching Tiers section above as well for prioritizing entire classes of jobs.

Within each tier jobs are sorted by the tier's Scheduling Mode. Modes that start with "P+" always sort jobs first by numerical Priority value, highest to lowest. Jobs with the same priority are considered in the order produced by the selected policy mode:

Limit Sharing and Resource Allocations

See also the Tractor Limits discussion.