IP Library Granted Patent US 11,902,102
Granted Patent B2
US 11,902,102 · App. 17/931,310 · Granted Feb 13, 2024

Techniques and architectures for efficient allocation of under-utilized resources

Inventors: James E. Walsh (Woodinville, WA); Sameer Tiwari (Fremont, CA)
Assignee: Salesforce, Inc.
H04L41/14H04L1/02H04L43/0876H04L47/822H04L47/823H04L7/10H04L67/568
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,902,102
App. No.
17/931,310
Granted
Feb 13, 2024
Kind
B2
Abstract

In a computing environment, a set of executing processes each having associated resources are provided. Aggregate resources for the computing environment include multiple different types of resources. A utilization level for each of the resources within the computing environment is evaluated to determine an unconsumed capacity for each of the resources below a utilization threshold. The utilization threshold is resource-dependent. An indication of at least a portion of unconsumed capacity for each of the resources below the utilization threshold is gathered. The unconsumed portion for each of the resources below the utilization threshold is exposed for consumption by other executing processes.

Claims (40)

1. A method, comprising:

determining, by one or more servers based at least in part on a first message transmitted by a first computing system, a first utilization level for a first individual resource within the first computing system, the first utilization level indicating an unconsumed capacity of a first resource type of the first individual resource;

determining, by the one or more servers based at least in part on a second message transmitted by a second computing system, a second utilization level of a second individual resource within the second computing system, the second utilization level indicating an unconsumed capacity of the first resource type of the second individual resource;

obtaining aggregate resource availability for the first resource type based, at least in part, on the first utilization level and the second utilization level;

determining, by the one or more servers, predicted load information associated with the first computing system based, at least in part, on the aggregate resource availability, the predicted load information indicating a predicted load for the first resource type; and

allocating, by the one or more servers, a portion of the first individual resource to a third computing system based, at least in part, on the predicted load information;

wherein allocating the portion of the first individual resource to the third computing system is performed responsive to processing a request from the third computing system, the portion of the first individual resource being allocated to the third computing system until it is needed by the first computing system.

2. The method of claim 1 wherein the first individual resource comprises at least virtual memory capacity.

3. The method of claim 1 wherein the first individual resource comprises at least physical memory capacity.

4. The method of claim 1 wherein the first individual resource comprises at least virtual processor capacity.

5. The method of claim 1 wherein the first individual resource comprises at least physical processor capacity.

6. The method of claim 1 wherein the first individual resource comprises at least cache memory capacity.

7. The method of claim 1 wherein the first individual resource comprises at least database capacity.

8. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, are configurable to cause the one or more processors to:

determine, by one or more servers based at least in part on a first message transmitted by a first computing system, a first utilization level for a first individual resource within the first computing system, the first utilization level indicating an unconsumed capacity of a first resource type of the first individual resource;

determine, by the one or more servers based at least in part on a second message transmitted by a second computing system, a second utilization level of a second individual resource within the second computing system, the second utilization level indicating an unconsumed capacity of the first resource type of the second individual resource;

obtain, by the one or more servers, aggregate resource availability for the first resource type based, at least in part, on the first utilization level and the second utilization level;

determine, by the one or more servers, predicted load information associated with the first computing system based, at least in part, on the aggregate resource availability, the predicted load information indicating a predicted load for the first resource type; and

allocate, by the one or more servers, a portion of the first individual resource to a third computing system based, at least in part, on the predicted load information,

wherein allocating the portion of the first individual resource to the third computing system is performed responsive to processing a request from the third computing system, the portion of the first individual resource being allocated to the third computing system until it is needed by the first computing system.

9. The non-transitory computer-readable medium of claim 8 wherein the first individual resource comprises at least virtual memory capacity.

10. The non-transitory computer-readable medium of claim 8 wherein the first individual resource comprises at least physical memory capacity.

11. The non-transitory computer-readable medium of claim 8 wherein the first individual resource comprises at least virtual processor capacity.

12. The non-transitory computer-readable medium of claim 8 wherein the first individual resource comprises at least physical processor capacity.

13. The non-transitory computer-readable medium of claim 8 wherein the first individual resource comprises at least cache memory capacity.

14. The non-transitory computer-readable medium of claim 8 wherein the first individual resources comprises at least database capacity.

15. A system comprising:

at least one hardware memory device;

one or more hardware processors coupled with the at least one hardware memory device, the one or more hardware processors configured to:

determine, by one or more servers based at least in part on a first message transmitted by a first computing system, a first utilization level for a first individual resource within the first computing system, the first utilization level indicating an unconsumed capacity of a first resource type of the first individual resource;

determine, by the one or more servers based at least in part on a second message transmitted by a second computing system, a second utilization level of a second individual resource within the second computing system, the second utilization level indicating an unconsumed capacity of the first resource type of the second individual resource;

obtain, by the one or more servers, aggregate resource availability for the first resource type based, at least in part, on the first utilization level and the second utilization level;

determine, by the one or more servers, predicted load information associated with the first computing system based, at least in part, on the aggregate resource availability, the predicted load information indicating a predicted load for the first individual resource type; and

allocate, by the one or more servers, a portion of the first individual resource to a third computing system based, at least in part, on the predicted load information,

wherein allocating the portion of the first individual resource to the third computing system is performed responsive to processing a request from the third computing system, the portion of the first individual resource being allocated to the third computing system until it is needed by the first computing system.

16. The system of claim 15 wherein the first individual resource comprises at least virtual memory capacity.

17. The system of claim 15 wherein the first individual resource comprises at least physical memory capacity.

18. The system of claim 15 wherein the first individual resource comprises at least virtual processor capacity.

19. The system of claim 15 wherein the first individual resource comprises at least physical processor capacity.

20. The system of claim 15 wherein the first individual resource comprises at least cache memory capacity.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0638 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2022
From: WALSH, JAMES E.; TIWARI, SAMEER
To: SALESFORCE.COM, INC.
Reel/Frame 061459/0419 →
Continuity (2)
Continuation 15282322 · Sep 30, 2016
Related Publication 20230006891A1 · Jan 5, 2023