IP Library Granted Patent US 11,321,118
Granted Patent B2
US 11,321,118 · App. 13/690,526 · Granted May 3, 2022

System and method for controlled sharing of consumable resources in a computer cluster

Inventor: Jon Franklin Matousek (Austin, TX)
Assignee: MessageOne, Inc.
G06F9/4831G06F9/4881G06F9/5011G06F9/5038G06F9/5061G06F2209/5014
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,321,118
App. No.
13/690,526
Granted
May 3, 2022
Kind
B2
Abstract

In one embodiment, a method includes empirically analyzing, by a computer cluster comprising a plurality of computers, a set of active reservations and a current set of consumable resources belonging to a class of consumable resources. Each active reservation is of a managed task type and comprises a group of one or more tasks task requiring access to a consumable resource of the class. The method further includes, based on the empirically analyzing, clocking the set of active reservations each clocking cycle. The method also includes, responsive to the clocking, sorting, by the computer cluster, a priority queue of the set of active reservations.

Claims (70)

1. A method of operating a computer cluster to apportion consumable resources by the computer cluster to process a set of active reservations, the method comprising:

via at least one process on the computer cluster comprising a plurality of computers, identifying a current set of the consumable resources that fulfill a resource need of a managed task type;

accessing a stored listing of tasks on the computer cluster, wherein the tasks are a managed task type that utilize a class of the consumable resources;

deriving, by the at least one process, from the stored listing of tasks, a set of the active reservations of the managed task type, wherein (i) deriving the set of active reservations comprises grouping the tasks from the stored listing of tasks into a group based on at least a common characteristic of the tasks, (ii) each active reservation comprises the grouping of tasks from the stored listing of tasks which have a set of characteristics in common, and (iii) the common characteristic of tasks in the group is a characteristic of the tasks that exists prior to the grouping;

apportioning, by the at least one process, the current set of consumable resources among the set of active reservations to yield a balanced-utilization partitioning scheme, the balanced-utilization partitioning scheme comprising a flow-control clocking weight for each active reservation,

wherein:

(i) the apportioning the current set of consumable resources among the set of active reservations comprises assigning each active reservation to one or more of the consumable resources;

(ii) the flow-control clocking weights comprise fractional units of the current set of consumable resources; and

(iii) a sum of the flow-control clocking weights equals a total number of the consumable resources in the current set of consumable resources; and

executing tasks associated with the current set of active reservations by at least performing controlled sharing of the current set of consumable resources among the set of active reservations via the flow-control clocking weights.

2. The method of claim 1 , comprising performing controlled sharing of the current set of consumable resources among the set of active reservations via the flow-control clocking weights.

3. The method of claim 1 , wherein the deriving comprises grouping tasks having a same task key into a same reservation.

4. The method of claim 3 , wherein the task key comprises a plurality of characteristics selected from the group consisting of: service ID, customer ID, and priority level.

5. The method of claim 1 , wherein each active reservation belongs to an active customer of a set of active customers.

6. The method of claim 5 , wherein the apportioning comprises:

computing a stationary distribution of the current set of consumable resources across the set of active customers, the stationary distribution comprising distribution of an equal proportion of the current set of consumable resources to each active customer;

for each active customer, calculating a reservation-specific resource percentage for each of the active customer's active reservations; and

computing the flow-control clocking weights based on the stationary distribution and the reservation-specific resource percentages.

7. The method of claim 5 , wherein the apportioning comprises establishing a plurality of super partitions relative to the current set of consumable resources.

8. The method of claim 7 , wherein the establishing comprises:

establishing a regular-priority super partition comprising a first subset of the current set of consumable resources; and

establishing a high-priority super partition comprising a second subset of the current set of consumable resources.

9. The method of claim 8 , wherein establishing a regular-priority super partition comprises reallocating unutilized resources of the high-priority super partition to the regular-priority super partition.

10. The method of claim 8 , comprising:

wherein establishing a regular-priority super partition comprises establishing a low-priority super partition that is a subset of the regular-priority super partition; and

wherein the low-priority super partition is made available to a designated class of customers when the regular-priority super partition is not fully utilized.

11. The method of claim 8 , wherein the apportioning comprises:

distributing an equal resource quantity of the regular-priority super partition to each active customer;

distributing a predetermined resource quantity of the high-priority super partition to each active customer that is eligible for the high-priority super partition;

for each active customer, summing the equal resource quantity and any predetermined resource quantity to yield a resource apportionment;

for each active customer, calculating a reservation-specific resource percentage for each of the active customer's active reservations; and

computing the flow-control clocking weights based on the reservation-specific resource percentages and the resource apportionment.

12. The method of claim 5 , wherein the apportioning comprises:

computing an outer distribution of the current set of consumable resources across the set of active customers;

wherein the outer distribution comprises distribution of a resource percentage of the current set of consumable resources to each active customer;

for each active customer, computing an inner stationary distribution across the active customer's priority groupings, the inner stationary distribution comprising distribution of a priority-specific resource percentage to each priority grouping;

for each active customer, calculating a reservation-specific resource percentage for each of the active customer's active reservations; and

computing the flow-control clocking weights based on the outer distribution, the inner stationary distribution, and the reservation-specific resource percentages.

13. The method of claim 12 , wherein the outer distribution comprises a stationary distribution of the current set of consumable resources across the set of active customers.

14. The method of claim 12 , wherein, for each active customer, computing an inner stationary distribution comprises:

identifying a priority grouping for each priority level of a plurality of priority levels at which the active customer has an active reservation;

computing a relative size between priorities for each priority grouping; and

for each priority grouping, calculating a normalized relative size, the normalized relative size comprising the priority grouping's priority-specific resource percentage.

15. The method of claim 1 , wherein the method is repeated as new tasks of the managed task type are created on the computer cluster.

16. The method of claim 1 , wherein the method is performed independently and in parallel by a plurality of flow-control instances resident on the computer cluster.

17. The method of claim 1 , wherein the flow-control clocking weights comprise fractional units of resources and are maintained in a double-precision floating-point format.

18. The method of claim 1 , wherein a sum of the flow-control clocking weights equals a number of resources in the current set of consumable resources.

19. An information handling system, comprising:

a computer cluster comprising a plurality of computers, the computer cluster having at least one flow-control instance resident and executing thereon;

wherein, for each of the at least one flow-control instance, to apportion consumable resources of the computer cluster to process a set of active reservations the computer cluster is programmed to:

identify a current set of consumable resources that fulfill a resource need of a managed task type;

access a stored listing of tasks on the computer cluster;

derive, from the stored listing of tasks, a set of active reservations of the managed task type, wherein (i) to derive the set of active reservations comprises grouping the tasks from the stored listing of tasks into a group based on at least a common characteristic of the tasks, (ii) each active reservation comprises the grouping of tasks from the stored listing of tasks which have a set of characteristics in common, and (iii) the common characteristic of tasks in the group is a characteristic of the tasks that exists prior to the grouping;

apportion the current set of consumable resources among the set of active reservations to yield a balanced-utilization partitioning scheme, wherein the apportionment of the current set of consumable resources among the set of active reservations comprises assigning each active reservation to a single consumable resource, and the balanced-utilization partitioning scheme comprising a flow-control clocking weight for each active reservation,

wherein:

(i) the apportionment of the current set of consumable resources among the set of active reservations comprises assigning each active reservation to one or more of the consumable resources;

(ii) the flow-control clocking weights comprise fractional units of the current set of consumable resources; and

(iii) a sum of the flow-control clocking weights equals a total number of the consumable resources in the current set of consumable resources; and

execute tasks associated with the current set of active reservations by at least performing controlled sharing of the current set of consumable resources among the set of active reservations via the flow-control clocking weights.

20. The information handling system of claim 19 , wherein the at least one flow-control instance comprises a plurality of flow-control instances that execute independently and in parallel.

21. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method of operating a computer cluster to apportion consumable resources of the computer cluster to process a set of active reservations by performing operations comprising:

on a computer cluster comprising a plurality of computers, identifying a current set of consumable resources that fulfill a resource need of a managed task type;

accessing a stored listing of tasks on the computer cluster;

deriving, from the stored listing of tasks, a set of active reservations of the managed task type, wherein (i) deriving the set of active reservations comprises grouping the tasks from the stored listing of tasks into a group based on at least a common characteristic of the tasks, (ii) each active reservation comprises the grouping of tasks from the stored listing of tasks which have a set of characteristics in common, and (iii) the common characteristic of tasks in the group is a characteristic of the tasks that exists prior to the grouping;

apportioning the current set of consumable resources among the set of active reservations to yield a balanced-utilization partitioning scheme, wherein the apportioning the current set of consumable resources among the set of active reservations comprises assigning each active reservation to a single consumable resource, and the balanced-utilization partitioning scheme comprising a flow-control clocking weight for each active reservation,

wherein:

(i) the apportioning the current set of consumable resources among the set of active reservations comprises assigning each active reservation to one or more of the consumable resources;

(ii) the flow-control clocking weights comprise fractional units of the current set of consumable resources; and

(iii) a sum of the flow-control clocking weights equals a total number of the consumable resources in the current set of consumable resources; and

executing tasks associated with the current set of active reservations by at least performing controlled sharing of the current set of consumable resources among the set of active reservations via the flow-control clocking weights.

Assignments (12)
SECURITY INTEREST Recorded Jul 2, 2020
From: MESSAGEONE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 053111/0809 →
CHANGE OF NAME Recorded Jun 15, 2020
From: MESSAGEONE, INC.
To: MESSAGEONE, LLC
Reel/Frame 052944/0793 →
MERGER Recorded Sep 28, 2015
From: METRIC HOLDINGS, LLC
To: MESSAGEONE, INC.
Reel/Frame 036667/0784 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2015
From: DELL MARKETING L.P.
To: METRIC HOLDINGS, LLC
Reel/Frame 035599/0731 →
RELEASE OF SECURITY INTEREST Recorded Apr 15, 2015
From: BANK OF AMERICA, N.A.
To: DELL MARKETING L.P.
Reel/Frame 035416/0025 →
RELEASE OF SECURITY INTEREST Recorded Apr 15, 2015
From: BANK OF AMERICA, N.A.
To: DELL MARKETING L.P.
Reel/Frame 035416/0196 →
RELEASE OF SECURITY INTEREST Recorded Apr 15, 2015
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT A.K.A. THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
To: DELL MARKETING L.P.
Reel/Frame 035413/0570 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2015
From: DELL PRODUCTS L.P.
To: DELL MARKETING L.P.
Reel/Frame 035251/0334 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2012
From: MATOUSEK, JON FRANKLIN
To: DELL PRODUCTS L.P.
Reel/Frame 029462/0087 →