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.