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.
The ability to manage resource groups is available through SQL, using the following commands:
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. Must be >= 4. |
max_data | Maximum amount of data, in bytes, that can be used by all database objects within this group; for example, a max_data of 1,000,000,000 would limit a user with this resource group to a total of 1GB of data usage across all tables, views, graphs, etc., system wide. |
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. Must be >= 4. |
max_data | Maximum amount of data, in bytes, that can be used by all database objects within this group; for example, a max_data of 1,000,000,000 would limit a user with this resource group to a total of 1GB of data usage across all tables, views, graphs, etc., system wide. |
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:
|
|