Workload Management
This article explains how you can use the resource manager and schema quotas to manage the workload.
Resource manager
The resource manager in Exasol systematically distributes resources across the users and roles in the database to improve the reliability and efficiency of resource usage.
To control resource management, you create consumer groups and allocate resources to them, then assign a consumer group to a user or a role. When a user connects to Exasol, a session is assigned to the consumer groups that are set for that user or for one of the user’s roles. The resource manager then allocates resources to the consumer groups and enforces resource limits by terminating violating queries or sessions when the limits are exceeded.
When you execute a query, Exasol attempts to use as many resources (CPU, RAM, network, I/O) as possible by internal parallelization (multi-threading). However, since not all execution steps can be parallelized, the utilization of all hardware resources will be achieved only with multiple parallel queries. If more parallel queries are executed than the number of cores per server, the resource manager schedules the parallel queries to ensure a constant system performance.
The resource manager distributes the resources evenly across the parallel queries using a time slot model, limiting the overall resource consumption by regularly pausing and restarting certain queries. Without such scheduling the overall usage could exhaust the system resources, leading to decreased throughput.
For more information, see Resource Manager.
Schema quotas
To limit the data volume in your system, or to limit the volume for certain tenants, you can use schema quotas that specify the maximum raw data size for a schema (the raw size of all contained data objects). By default, the raw data sizes for schemas are unlimited. You can define a limit using ALTER SCHEMA.
The corresponding raw data sizes for schemas can be found in the system table EXA_ALL_OBJECT_SIZES, by filtering on OBJECT_TYPE = 'SCHEMA'
. The value NULL
means unlimited.
If the limit of a schema is exceeded, users will get an error message during the commit when trying to insert additional data.