IP Library Granted Patent US 9,106,591
Granted Patent B2
US 9,106,591 · App. 12/647,337 · Granted Aug 11, 2015

Adaptive resource management using survival minimum resources for low priority consumers

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 9,106,591
App. No.
12/647,337
Granted
Aug 11, 2015
Kind
B2
Abstract

Allocation of resources across multiple consumers allows efficient utilization of shared resources. Observed usages of resources by consumers over time intervals are used to determine a total throughput of resources by the consumers. The total throughput of resources is used to determine allocation of resources for a subsequent time interval. The consumers are associated with priorities used to determine their allocations. Minimum and maximum resource guarantees may be associated with consumers. The resource allocation aims to allocate resources based on the priorities of the consumers while aiming to avoid starvation by any consumer. The resource allocation allows efficient usage of network resources in a database storage system storing multiple virtual databases.

Claims (61)

1. A method for allocating a network resource to a plurality of consumers, the method comprising:

determining a metric representing aggregate needs of a low priority set of consumers of a network resource based on measures of needs of each of the low priority set of consumers, the measure of needs of a consumer determined based on an observed usage of the network resource by the consumer;

determining a measure of survival minimum resources for the low priority consumers, the survival minimum resources for a consumer determined based on a minimum amount of resources needed to operate a mode of processing of a task for the consumer;

responsive to the aggregate needs of the low priority set of consumers being below the measure of survival minimum resources, determining allocations of the network resource for the low priority set of consumers before determining allocations for a high priority set of consumers, the allocation for each consumer from the low priority set determined based on the measure of needs of the consumer;

determining allocations of the network resource for the high priority set of consumers based on the resources remaining after allocating resources to the low priority set of consumers; and

allocating resources to the high priority set of consumers based on the determined allocations for the high priority set of consumers.

2. The method of claim 1 , wherein determining allocations of the network resource for the high priority set of consumers comprises allocating an amount of resources based on an estimate of the requirement of each consumer from the high priority set of consumers.

3. The method of claim 1 , further comprising:

responsive to determining allocations of the network resource for the high priority set of consumers, determining a left over network resource not allocated to the high priority set of consumers; and

allocating the left over network resource to the low priority set of consumers.

4. The method of claim 3 , wherein allocating the left over network resource to the low priority set of consumers further comprises:

responsive to determining that the left over network resource is less than the needs of the low priority set of consumers, dividing the left over network resource between the low priority set of consumers, wherein the network resource allocated to each consumer from the low priority set of consumers is based on a priority of the consumer.

5. The method of claim 3 , further comprising:

determining whether a network resource is lightly loaded based on the observed usage of the network resource by consumers; and

dividing the left over network resource equally among all consumers of the low priority set if the network resource is determined to be lightly loaded.

6. The method of claim 5 , further comprising:

determining whether a network resource is lightly loaded based on the observed usage of the network resource by consumers; and

dividing the left over network resource among consumers of the low priority set based on priority of each consumer if the network resource is determined to be not lightly loaded.

7. The method of claim 6 , wherein the left over network resource is divided among consumers of the low priority set based on the usage of each consumer.

8. The method of claim 1 , further comprising:

responsive to determining that the left over network resource for the low priority set of consumers are below the survival minimum resources for the low priority consumer, stopping execution of one or more consumers from the low priority set of consumers.

9. The method of claim 1 , further comprising:

determining the measure of survival minimum resources for the low priority consumers as a percentage of historically observed usage of the low priority consumers.

10. The method of claim 1 , wherein an aggregate of survival minimum resources for a set of consumers for a network resource is determined as a value proportionate to a throughput of the network resource.

11. The method of claim 1 , wherein the measure of needs of a consumer is determined based on observed usage of a consumer increased by a margin associated with the consumer, wherein the margin is determined based on the priority of the consumer.

12. The method of claim 1 , further comprising:

determining a measure of potential starvation of a consumer based on a fraction of time interval during which the usage of the consumer exceeds a predetermined percentage of allocation.

13. The method of claim 12 , further comprising:

modifying the priority of the consumer based the measure of potential starvation of the consumer.

14. The method of claim 12 , further comprising:

promoting the consumer to a higher priority responsive to the measure of potential starvation of the consumer exceeding a threshold.

15. A non-transitory computer-readable storage medium storing computer-executable code allocating a network resource to a plurality of consumers, the code comprising:

a metrics manager configured to:

determine a metric representing aggregate needs of a low priority set of consumers of a network resource based on measures of needs of each of the low priority set of consumers, the measure of needs of a consumer determined based on an observed usage of the network resource by consumer;

an allocations manager configured to:

determine a measure of survival minimum resources for the low priority consumers, the survival minimum resources for a consumer determined based on a minimum amount of resources needed to operate a mode of processing of a task for the consumer;

responsive to the aggregate needs of the low priority set of consumers being below the measure of survival minimum resources, determine allocations of the network resource for the low priority set of consumers before determining allocations for a high priority set of consumers, the allocation for each consumer from the low priority set determined based on the measure of needs of the consumer;

determine allocations of the network resource for the high priority set of consumers based on the resources remaining after allocating resources to the low priority set of consumers; and

allocating resources to the high priority set of consumers based on the determined allocations for the high priority set of consumers.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the allocations manager is further configured to determine allocations of the network resource for the high priority set of consumers and allocate an amount of network resource based on an estimate of the requirement of each consumer from the high priority set of consumers.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the allocations manager is further configured to:

responsive to determining allocations of the network resource for the high priority set of consumers, determine a left over network resource not allocated to the high priority set of consumers; and

allocate the left over network resource to the low priority set of consumers.

18. The non-transitory computer-readable storage medium of claim 17 , wherein allocating the left over network resource to the low priority set of consumers further comprises:

responsive to determining that the left over network resource is less than the needs of the low priority set of consumers, dividing the left over network resource between the low priority set of consumers, wherein the network resource allocated to each consumer from the low priority set of consumers is based on a priority of the consumer.

19. A computer system comprising:

a computer processor:

a non-transitory computer-readable storage medium storing computer-executable code for execution by the computer processor, the code comprising:

a metrics manager configured to:

determine a metric representing aggregate needs of a low priority set of consumers of a network resource based on measures of needs of each of the low priority set of consumers, the measure of needs of a consumer determined based on an observed usage of the network resource by consumer;

an allocations manager configured to:

determine a measure of survival minimum resources for the low priority consumers, the survival minimum resources for a consumer determined based on a minimum amount of resources needed to operate a mode of processing of a task for the consumer;

responsive to the aggregate needs of the low priority set of consumers being below the measure of survival minimum resources, determine allocations of the network resource for the low priority set of consumers before determining allocations for a high priority set of consumers, the allocation for each consumer from the low priority set determined based on the measure of needs of the consumer;

determine allocations of the network resource for the high priority set of consumers based on the resources remaining after allocating resources to the low priority set of consumers; and

allocating resources to the high priority set of consumers based on the determined allocations for the high priority set of consumers.

20. The computer system of claim 19 , wherein the allocations manager is further configured to determine allocations of the network resource for the high priority set of consumers and allocate an amount of network resource based on an estimate of the requirement of each consumer from the high priority set of consumers.

21. The computer system of claim 19 , wherein the allocations manager is further configured to:

responsive to determining allocations of the network resource for the high priority set of consumers, determine a left over network resource not allocated to the high priority set of consumers; and

allocate the left over network resource to the low priority set of consumers.

22. The computer system of claim 21 , wherein allocating the left over network resource to the low priority set of consumers further comprises:

responsive to determining that the left over network resource is less than the needs of the low priority set of consumers, dividing the left over network resource between the low priority set of consumers, wherein the network resource allocated to each consumer from the low priority set of consumers is based on a priority of the consumer.

Assignments (16)
FIRST LIEN PATENT SECURITY AGREEMENT Recorded May 24, 2024
From: DELPHIX CORP.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 067528/0384 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded May 17, 2024
From: DELPHIX CORP.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 067453/0344 →
RELEASE OF SECURITY INTEREST Recorded Mar 22, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: DELPHIX CORP.
Reel/Frame 066869/0540 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2022
From: HERCULES CAPITAL, INC., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: DELPHIX CORP.
Reel/Frame 060737/0201 →
SECURITY INTEREST Recorded Aug 5, 2022
From: DELPHIX CORP.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 060734/0591 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2022
From: SILICON VALLEY BANK
To: DELPHIX CORP.
Reel/Frame 060738/0578 →
SECURITY INTEREST Recorded Jan 10, 2020
From: DELPHIX CORP.
To: HERCULES CAPITAL, INC., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 051482/0043 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 9, 2020
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: DELPHIX CORP.
Reel/Frame 051532/0264 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE TO REMOVE APPLICATION NUMBERS 10025528 AND 10083196, AND REPLACE WITH PATENT NUMBERS 10025528 AND 10083196 PREVIOUSLY RECORDED ON REEL 047169 FRAME 0863. ASSIGNOR(S) HEREBY CONFIRMS THE AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT. Recorded Jan 6, 2020
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 051485/0422 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE TO REMOVE APPLICATION NUMBERS 10025528 AND 10083196, AND REPLACE WITH PATENT NUMBERS 10025528 AND 10083196 PREVIOUSLY RECORDED ON REEL 047016 FRAME 0544. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jan 6, 2020
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 051485/0438 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 9, 2019
From: DELPHIX CORP.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 050673/0234 →
SECURITY INTEREST Recorded Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047016/0544 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047169/0863 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 1, 2018
From: SILICON VALLEY BANK
To: DELPHIX CORP.
Reel/Frame 047169/0901 →
SECURITY INTEREST Recorded Feb 28, 2017
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 041398/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2010
From: KLOTS, BORIS; SINHA, SUBHADEEP; KUMAR, SATISH
To: DELPHIX CORP.
Reel/Frame 024053/0591 →