Techniques and architectures for efficient allocation of under-utilized resources
AssigneeSalesforce, Inc.
InventorsJames E. Walsh, Sameer Tiwari
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
Dependencies are inferred from the claim text.