Enforcing system resource usage limits on query requests based on grouping query requests into workgroups and assigning workload groups to resource pools
First Claim
Patent Images
1. A system for enforcing system resource usage limits on query requests accessing a database based on grouping query requests into workload groups and based on assigning workload groups to resource pools, the system comprising:
- at least one processor; and
one or more computer storage devices having stored thereon computer executable instructions that, when executed by the at least one processor, implement a method, comprising;
defining a plurality of workload groups, wherein each workload group is configured to be assigned one or more query requests and comprises one or more resource policies that govern access permitted to the one or more query requests to use system resources that are made available to the workload group, wherein the resource policies place limits on the use of system resources by the one or more query requests, the plurality of workload groups in a default workload group and other workload groups;
defining a plurality of resource pools, wherein each resource pool is configured to be assigned one or more of the plurality of workload groups and defines an arrangement of system resources that are available to the one or more workload groups, and wherein each resource pool comprises one or more pool policies that govern resource consumption by query requests whenever a plurality of workload groups are assigned to the resource pool, the plurality of resource pools including a default resource pool that defines an arrangement of system resources available to the default workload group;
defining a classifier function that associates incoming query requests with the plurality of workload groups based on attributes of the incoming query requests, the classifier function associating any incoming query request not associated any of the other workload groups to the default workload group;
receiving a particular query request;
associating the particular query request with a particular workload group of the plurality of workload groups based, at least in part, on the classifier function and an attribute of the particular query request, the particular workload group comprising the default workload group whenever it is determined that the particular query request is not associated with any of the other workload groups;
assigning the particular workload group to a particular resource pool of the plurality of resource pools that is associated with a portion of system resources, thereby making the portion of the system resources available to the particular workload group, the particular resource pool comprising the default resource pool when the particular workload group comprises the default workload group; and
governing access permitted to the particular query request to system resources using a particular resource policy of the particular workload group and a particular pool policy of the particular resource pool, wherein the governing includes;
limiting the portion of the system resources available to the particular workload group as per the particular pool policy; and
limiting the use of the portion of system resources available to the particular workload group by the particular query request as per the particular resource policy.
3 Assignments
0 Petitions
Accused Products
Abstract
A database can have multiple requests applied at one time. Each of these requests requires a specific amount of server resources. There can be a differentiation of user-submitted workloads between each other. These workloads are a set of queries submitted by different users. Each query can have specific resource limits. In addition, each set can have specific resource limits.
-
Citations
21 Claims
-
1. A system for enforcing system resource usage limits on query requests accessing a database based on grouping query requests into workload groups and based on assigning workload groups to resource pools, the system comprising:
-
at least one processor; and one or more computer storage devices having stored thereon computer executable instructions that, when executed by the at least one processor, implement a method, comprising; defining a plurality of workload groups, wherein each workload group is configured to be assigned one or more query requests and comprises one or more resource policies that govern access permitted to the one or more query requests to use system resources that are made available to the workload group, wherein the resource policies place limits on the use of system resources by the one or more query requests, the plurality of workload groups in a default workload group and other workload groups; defining a plurality of resource pools, wherein each resource pool is configured to be assigned one or more of the plurality of workload groups and defines an arrangement of system resources that are available to the one or more workload groups, and wherein each resource pool comprises one or more pool policies that govern resource consumption by query requests whenever a plurality of workload groups are assigned to the resource pool, the plurality of resource pools including a default resource pool that defines an arrangement of system resources available to the default workload group; defining a classifier function that associates incoming query requests with the plurality of workload groups based on attributes of the incoming query requests, the classifier function associating any incoming query request not associated any of the other workload groups to the default workload group; receiving a particular query request; associating the particular query request with a particular workload group of the plurality of workload groups based, at least in part, on the classifier function and an attribute of the particular query request, the particular workload group comprising the default workload group whenever it is determined that the particular query request is not associated with any of the other workload groups; assigning the particular workload group to a particular resource pool of the plurality of resource pools that is associated with a portion of system resources, thereby making the portion of the system resources available to the particular workload group, the particular resource pool comprising the default resource pool when the particular workload group comprises the default workload group; and governing access permitted to the particular query request to system resources using a particular resource policy of the particular workload group and a particular pool policy of the particular resource pool, wherein the governing includes; limiting the portion of the system resources available to the particular workload group as per the particular pool policy; and limiting the use of the portion of system resources available to the particular workload group by the particular query request as per the particular resource policy. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for enforcing system resource usage limits on query requests accessing a database based on grouping query requests into workload groups and based on assigning workload groups to resource pools, the method comprising:
-
defining a plurality of workload groups, including a default workload group, wherein each workload group is configured to be assigned one or more query requests and comprises one or more resource policies that govern access permitted to the one or more query requests to use system resources that are made available to the workload group, and wherein the resource policies place limits on the use of system resources by the one or more query requests; defining a plurality of resource pools, including a default resource pool corresponding to the default workload group, wherein each resource pool is configured to be assigned one or more of the plurality of workload groups and defines an arrangement of system resources that are available to the one or more workload groups, and wherein each resource pool comprises one or more pool policies that govern resource consumption by query requests whenever a plurality of workload groups are assigned to the resource pool; defining a classifier function that associates incoming query requests with one of the plurality of workload groups based on one or more attributes of the incoming query requests, the classifier function associating the incoming query requests with the default workload group when the one or more attributes of the incoming query requests do not associate the incoming query requests with any other workload group; receiving a particular query request; associating the particular query request with a particular workload group of the plurality of workload groups based, at least in part, on the classifier function and an attribute of the particular query request; assigning the particular workload group to a particular resource pool of the plurality of resource pools that is associated with a portion of system resources, thereby making the portion of the system resources available to the particular workload group; and governing access permitted to the particular query request to system resources using a particular resource policy of the particular workload group and a particular pool policy of the particular resource pool, wherein the governing includes; limiting the portion of the system resources available to the particular workload group as per the particular pool policy; and limiting the use of the portion of system resources available to the particular workload group by the particular query request as per the particular resource policy. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. One or more computer storage devices having stored thereon computer executable instructions that, when executed by at least one processor of a computer system, implement a method for enforcing system resource usage limits on query requests accessing a database based on grouping query requests into workload groups and based on assigning workload groups to resource pools, the method comprising:
-
defining a plurality of workload groups, wherein each workload group is configured to be assigned one or more corresponding query requests and comprises one or more resource policies that govern access permitted to the one or more corresponding query requests to use system resources that are made available to the workload group, wherein the resource policies place limits on the use of system resources by the one or more corresponding query requests, the plurality of workload groups including a default workload group to which query requests not associated with any other workload group are assigned; defining a plurality of resource pools, wherein each resource pool is configured to be assigned one or more corresponding workload groups of the plurality of workload groups and defines an arrangement of system resources that are available to any of the one or more corresponding workload groups, and wherein each resource pool comprises one or more pool policies that govern resource consumption by query requests in circumstances when a plurality of workload groups are assigned to the resource pool, the plurality of resource pools including a default resource pool that defines an arrangement of system resources available to query requests associated with the default workload group; defining a classifier function that associates incoming query requests with one of the plurality of workload groups based on attributes of the incoming query requests; receiving a particular query request; associating the particular query request with a particular workload group of the plurality of workload groups based, at least in part, on the classifier function and an attribute of the particular query request, the particular workload group comprising the default workload group when no attribute of the particular query request associates the particular query request with any other workload group in the plurality of workload groups; assigning the particular workload group to a particular resource pool of the plurality of resource pools that is associated with a portion of system resources, thereby making the portion of the system resources available to the particular workload group, the particular resource pool comprising the default resource pool when no attribute of the particular query request associates the particular query request with any other workload group; and governing access permitted to the particular query request to system resources using a particular resource policy of the particular workload group and a particular pool policy of the particular resource pool, wherein the governing includes; limiting the portion of the system resources available to the particular workload group as per the particular pool policy; and limiting the use of the portion of system resources available to the particular workload group by the particular query request as per the particular resource policy.
-
Specification