Workload scheduling
Separate query workloads and share server resources deliberately.
Workload scheduling
Workloads and resources are RawTree database objects inherited from ClickHouse.
SQL statements such as CREATE WORKLOAD and CREATE RESOURCE define them.
RawTree schedules work according to those definitions. RawTree Cloud and
RawTree BYOC expose supported statements through the Query API.
Workloads form a tree. A parent can hold a broad budget while child workloads
separate interactive queries from batch work. Resources name the thread or
disk pools that a workload may schedule. Use the
workload setting in a
SETTINGS clause, or use a settings profile attached to the role.
A hierarchy, not a list
A typical tree has all at the root, default for queries without an explicit
choice, then interactive and batch below it. The tree gives the scheduler
context for sharing resources:
weightcontrols a branch's relative share when siblings compete.- Lower
priorityvalues have higher priority under priority scheduling. max_concurrent_threadscaps the threads a workload can use.
These controls shape scheduling; they do not grant database access. CPU limits apply per server, not as one cluster-wide budget.
Selecting and enforcing a workload
Use the workload setting in
a query's SETTINGS clause when the caller can choose a workload.
A settings profile can set the default for a database role. Mark the setting
CONST when the role must not switch workloads. Use READONLY to make the
setting read-only for the role.
throw_on_unknown_workload
makes an unknown workload name an error.
use_concurrency_control
enables concurrency control for a query. A profile can set this value and lock
it with CONST.
Storage and operators
RawTree Cloud manages the workload storage configuration. In RawTree BYOC,
that configuration belongs to the operators responsible for the deployment. When workload storage is local,
apply cluster DDL with ON CLUSTER 'default'. Keeper-backed storage stores
definitions in Keeper and rejects that clause. Check the target cluster before
you choose the form.