Kinetica provides a SQL interface for managing resource groups, which can be used to limit memory and thread usage, and execution priority for a user or group of users. It also provides the means to modify the tiers that the resource groups reference.
The ability to manage resource groups is available through SQL, using the following commands:
The ability to manage tiers is available through the following command:
See Security for details on assigning resource groups to users and roles.
CREATE RESOURCE GROUP
Resource groups require only a name to be created, all limits are optional. Resource group names are case-sensitive and must contain only letters, digits, and underscores, and cannot begin with a digit. A resource group must also not be named the same as an existing resource group, including the default resource groups: kinetica_system_resource_group & kinetica_default_resource_group.
|
|
Parameters | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<resource group name> | Name of the resource group to create. | ||||||||||||||||||
RANK | Designation of where in the ordering of applicable resource groups this one should exist. For a given set of resource groups, the one that is ranked before all the others will be used. RANK designations include:
| ||||||||||||||||||
TIER LIMITS | Optional indicator that a set of tier names and corresponding property assignments will follow. Parameters for each tier assignment are as follows:
| ||||||||||||||||||
WITH OPTIONS | Optional indicator that a comma-delimited list of resource group property option/value assignments will follow. See Resource Group Options for the complete list of options. |
Resource Group Options
The following options can be specified to further modify a resource group configuration.
Option | Description |
---|---|
max_cpu_concurrency | Maximum number of simultaneous threads that will be used to execute a request, per rank. Must be >= 4. |
max_data | Maximum amount of data, per rank, in bytes, that can be used by all database objects within this group; for example, a max_data of 1000000000 would limit a user with this resource group to a per-rank total of 1GB of data usage across all tables, views, graphs, etc., including temporary objects supporting data processing operations (queries, materialized views, etc.). |
max_scheduling_priority | Maximum scheduling priority of a task. |
max_tier_priority | Maximum eviction priority of a tiered object. |
Examples
For example, to create a simple unlimited resource group with default settings:
|
|
To create a memory_over_execution resource group, with high tier capacity limits, but low execution options:
|
|
To create a execution_over_memory resource group, with lower tier capacity limits, but higher execution options, as compared to the memory_over_execution group:
|
|
ALTER RESOURCE GROUP
Any of the following facets of a resource group can be altered, either individually or as a group:
- Rank
- Tier limits
- Execution options
|
|
Parameters | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<resource group name> | Name of the resource group to alter. | ||||||||||||||||||
RANK | Designation of where in the ordering of applicable resource groups this one should exist. For a given set of resource groups, the one that is ranked before all the others will be used. RANK designations include:
| ||||||||||||||||||
TIER LIMITS | Optional indicator that a set of tier names and corresponding property assignments will follow. Parameters for each tier assignment are as follows:
| ||||||||||||||||||
WITH OPTIONS | Optional indicator that a comma-delimited list of resource group property option/value assignments will follow. See Resource Group Options for the complete list of options. |
Resource Group Options
The following options can be specified to further modify a resource group configuration.
Option | Description |
---|---|
max_cpu_concurrency | Maximum number of simultaneous threads that will be used to execute a request, per rank. Must be >= 4. |
max_data | Maximum amount of data, per rank, in bytes, that can be used by all database objects within this group; for example, a max_data of 1000000000 would limit a user with this resource group to a per-rank total of 1GB of data usage across all tables, views, graphs, etc., including temporary objects supporting data processing operations (queries, materialized views, etc.). |
max_scheduling_priority | Maximum scheduling priority of a task. |
max_tier_priority | Maximum eviction priority of a tiered object. |
persist | Whether to save this change to the database configuration so that it will stay in effect after a database restart. Default is true. |
Examples
For example, to alter an existing memory_and_execution resource group, moving it to the highest ranking, while assigning new limits for the RAM tier and max_cpu_concurrency & max_scheduling_priority options, but leaving other existing settings untouched:
|
|
DROP RESOURCE GROUP
An existing user-defined resource group can be removed from the system, which will also dissociate the group from any users or roles to which it was assigned.
|
|
For example, to remove the unlimited resource group:
|
|
SHOW RESOURCE GROUP
The configuration of any resource group can be shown, in tabular form. The configuration for all resource groups in the system can also be shown with a single command.
|
|
For example, to show the configuration of the memory_and_execution resource group:
|
|
To show the configuration of all resource groups:
|
|
ALTER TIER
The size & eviction thresholds of storage tiers can be modified, applying the change to individually specified ranks or all ranks at once.
Tier settings can be viewed with SHOW SYSTEM PROPERTIES.
|
|
Parameters | Description | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<tier name> | Name of the storage tier to alter.
| ||||||||||||||
WITH OPTIONS | Optional indicator that a comma-delimited list of tier property name / tier property value assignments will follow.
|
Examples
For example, to alter the capacity of the RAM tier on rank 0 to 500MB temporarily (until the database is restarted):
|
|
To show the change took effect:
|
|
|
|
To alter the eviction thresholds of the VRAM tier across all ranks, and save the change to the startup configuration:
|
|
To show the change took effect:
|
|
|
|