IP Library Granted Patent US 10,333,863
Granted Patent B2
US 10,333,863 · App. 14/794,228 · Granted Jun 25, 2019

Adaptive resource allocation based upon observed historical usage

Inventors: Boris Klots (Belmont, CA); Subhadeep Sinha (Mountain View, CA); Satish Kumar (San Jose, CA)
Assignee: DELPHIX CORP.
H04L47/822G06F17/30566H04L41/5009H04L41/5022H04L43/08H04L43/0888H04L47/805H04L47/828H04L67/10H04L67/325H04M15/00H04L41/0816
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 10,333,863
App. No.
14/794,228
Granted
Jun 25, 2019
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 (35)

1. A method for allocating a network resource used by a plurality of consumers based upon a total throughput of the network resource, wherein the total throughput is a measure of the aggregated network bandwidth available to the plurality of consumers using the network resource, the method comprising:

initially allocating the network resource for each consumer in the plurality of consumers using a low estimate of bandwidth based on a fraction of a stated link capacity as the total throughput of the network resource, wherein an allocation of the network resource for each consumer determines availability of network resource to the consumer for a subsequent time interval;

iterating, over one or more cycles:

determining a plurality of cumulative usage values of the network resource, wherein each cumulative usage value is associated with a time interval and is based on observed usages of the network resource by a corresponding consumer of the plurality of consumers over the time interval, wherein each consumer represents a process executing on a computer system and accessing a database storage system via the network resource;

determining a total observed throughput of the network resource based on an aggregate of the plurality of cumulative usage values of the network resource, wherein each of the plurality of cumulative usage values is weighted based upon a non-zero weight value determined as a decreasing function of the age of the time intervals relative to a current time associated with the cumulative usage values;

determining a total amount of the network resource to allocate to the plurality of consumers based upon the determined total observed throughput of the network resource increased by a predetermined factor;

responsive to determining that the determined total amount is above a predetermined threshold value, using a high estimate of bandwidth based on a fraction of the stated link capacity as the total amount; and

allocating the network resource for each consumer in the plurality of consumers, based on the determined total amount.

2. The method of claim 1 , wherein the weight values linearly decrease with the age of the time intervals associated with the cumulative usage values.

3. The method of claim 1 , wherein determining the total throughput value excludes cumulative usage values outside a predetermined time interval.

4. The method of claim 1 , wherein the weight values decrease with the age of the time intervals associated with the cumulative usage values based upon an exponential function.

5. A computer readable non-transitory storage medium, storing instructions for:

initially allocating the network resource for each consumer in the plurality of consumers using a low estimate of bandwidth based on a fraction of a stated link capacity as the total throughput of the network resource, wherein an allocation of the network resource for each consumer determines availability of network resource to the consumer for a subsequent time interval;

iterating, over one or more cycles:

determining a plurality of cumulative usage values of the network resource, wherein each cumulative usage value is associated with a time interval and is based on observed usages of the network resource by a corresponding consumer of the plurality of consumers over the time interval, wherein each consumer represents a process executing on a computer system and accessing a database storage system via the network resource;

determining a total observed throughput of the network resource based on an aggregate of the plurality of cumulative usage values of the network resource, wherein each of the plurality of cumulative usage values is weighted based upon a non-zero weight value determined as a decreasing function of the age of the time intervals relative to a current time associated with the cumulative usage values;

determining a total amount of the network resource to allocate to the plurality of consumers based upon the determined total observed throughput of the network resource increased by a predetermined factor;

responsive to determining that the determined total amount is above a predetermined threshold value, using a high estimate of bandwidth based on a fraction of the stated link capacity as the total amount; and

allocating the network resource for each consumer in the plurality of consumers based on the determined total amount.

6. The computer readable non-transitory storage medium of claim 5 , wherein the weight values linearly decrease with the age of the time interval associated with the cumulative usage values.

7. The computer readable non-transitory storage medium of claim 5 , wherein determining the total throughput value excludes cumulative usage values outside a predetermined time interval.

8. The computer readable non-transitory storage medium of claim 5 , wherein the weight values decrease with the age of the time intervals associated with the cumulative usage values based upon an exponential function.

9. A computer system, comprising:

a computer processor; and

non-transitory computer readable storage medium storing instructions for:

initially allocating the network resource for each consumer in the plurality of consumers using a low estimate of bandwidth based on a fraction of a stated link capacity as the total throughput of the network resource, wherein an allocation of the network resource for each consumer determines availability of network resource to the consumer for a subsequent time interval;

iterating, over one or more cycles:

determining a plurality of cumulative usage values of the network resource, wherein each cumulative usage value is associated with a time interval and is based on observed usages of the network resource by a corresponding consumer a plurality of consumers over the time interval, wherein each consumer represents a process executing on a computer system and accessing a database storage system via the network resource;

determining a total observed throughput of the network resource based on an aggregate of the plurality of cumulative usage values of the network resource, wherein each of the plurality of cumulative usage values is weighted based upon a non-zero weight value determined as a decreasing function of the age of the time intervals relative to a current time associated with the cumulative usage values;

determining a total amount of the network resource to allocate to the plurality of consumers based upon the determined observed throughput of the network resource increased by a predetermined factor;

responsive to determining that the determined total amount is above a predetermined threshold value, using a high estimate of bandwidth based on a fraction of the stated link capacity as the total amount; and

allocating the network resource for each consumer in the plurality of consumers based on the determined total amount.

10. The computer system of claim 9 , wherein the weight values linearly decrease with the age of the time interval associated with the cumulative usage values.

11. The computer system of claim 9 , wherein determining the total throughput value excludes cumulative usage values outside a predetermined time interval.

12. The computer system of claim 9 , wherein the weight values decrease with the age of the time intervals associated with the cumulative usage values based upon an exponential function.

Assignments (18)
SECURITY INTEREST Recorded Apr 7, 2026
From: PERFORCE SOFTWARE, INC.; DELPHIX CORP.; AKANA, INC.; ROGUE WAVE SOFTWARE, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 075368/0968 →
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2026
From: CORTLAND CAPITAL MARKET SERVICES, AS COLLATERAL AGENT
To: ROGUE WAVE SOFTWARE, INC.; AKANA, INC.; GLIFFY, INC.; DELPHIX CORP.
Reel/Frame 075365/0519 →
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: SILICON VALLEY BANK
To: DELPHIX CORP.
Reel/Frame 060738/0578 →
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 →
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 →
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 Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047016/0544 →
SECURITY INTEREST Recorded Feb 28, 2017
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 041398/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2015
From: KLOTS, BORIS; SINHA, SUBHADEEP; KUMAR, SATISH
To: DELPHIX CORP.
Reel/Frame 036147/0735 →
Continuity (2)
Division 12647337 · Dec 24, 2009
Related Publication 20150312169A1 · Oct 29, 2015
Cited By (2)
US 12,632,312 US 12,634,897