Flexible Priority Management

Details

Detail name Value
Changelog Number 4061
Type New Feature
Status Resolved
Fix Versions Exasol 6.1.0
Resolution Date 2018-04-26

Database administrators could use the three pre-defined priority groups LOW, MEDIUM, and HIGH to prioritize resource distribution between different users and roles. It was not possible to alter these groups or to create new ones. This pre-defined set of priority groups turned out to be too coarse-grained for large-scale installations with multiple user groups which e.g. represent different departments.

It is now possible to

  • query the existing priority groups through the system table EXA_PRIORITY_GROUPS,
  • change the database-wide default priority group using ALTER SYSTEM,
  • create new priority groups with weights ranging from 1 to 1000 using CREATE PRIORITY GROUP,
  • alter the weight of existing priority groups using ALTER PRIORITY GROUP,
  • drop priority groups using DROP PRIORITY GROUP,
  • rename priority groups using RENAME PRIORITY GROUP,
  • comment priority groups using COMMENT ON PRIORITY GROUP,
  • grant the system privilege MANAGE PRIORITY GROUPS to users/roles to allow them to create/modify/drop priority groups.

Example Usage

SELECT * FROM EXA_PRIORITY_GROUPS;

ALTER SYSTEM SET DEFAULT_PRIORITY_GROUP = LOW;

CREATE PRIORITY GROUP example WITH WEIGHT = 1;
ALTER  PRIORITY GROUP example SET  WEIGHT = 1000;
DROP   PRIORITY GROUP example;
RENAME PRIORITY GROUP example TO new_name;
COMMENT ON PRIORITY GROUP example IS 'new comment';

GRANT MANAGE PRIORITY GROUPS TO user;

For details, see section "Priorities" in the Exasol User Manual.

Besides using the three pre-defined priority groups, database administrators have now more options to prioritize between different user groups. They can alter and extend the existing priority groups or completely replace them.

As before, the query execution times don't exactly follow the weights of their priority groups.

Changed behavior

Renamed query GRANT PRIORITY to GRANT PRIORITY GROUP and REVOKE PRIORITY to REVOKE PRIORITY GROUP. The old names are still supported.
Renamed system privilege GRANT ANY PRIORITY to GRANT ANY PRIORITY GROUP. The old name is still supported in GRANT/REVOKE queries.
Delimited priority group names are now case-sensitive.