IP Library Patent Application 15451118
Patent Application
App. No. 15/451,118

MULTIDIMENSIONAL RESOURCE ALLOCATION IN DATA CENTERS

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 None
App. No.
15/451,118
Abstract

The disclosed embodiments provide a system for allocating resources to an application. During operation, the system obtains a set of resource requirements for the application, wherein the resource requirements include a processor allocation and a memory allocation. Next, the system identifies a set of hosts in a set of racks with available resources that meet the resource requirements. The system then selects, for the application, a rack in the set of racks based on a priority associated with resource allocation for the application and a host in the rack based on one or more additional priorities associated with resource allocation for the application. Finally, the system allocates the resources on the host to the application.

Claims (84)

1 . A method, comprising:

obtaining a set of resource requirements for an application, wherein the resource requirements comprise a processor allocation and a memory allocation;

allocating a set of resources that meets the resource requirements to the application by performing the following operations on a computer system:

identifying a set of hosts in a set of racks with available resources that meet the resource requirements;

selecting, for the application, a rack in the set of racks based on a priority associated with resource allocation for the application;

selecting, for the application, a host from a subset of the hosts in the rack based on one or more additional priorities associated with resource allocation for the application; and

allocating the resources on the host to the application.

2 . The method of claim 1 , further comprising:

selecting the host for use in allocating additional resources to an additional application; and

when the host lacks the additional resources to meet additional resource requirements of the additional application after the resources are allocated to the application, searching remaining hosts in the rack for the additional resources.

3 . The method of claim 2 , further comprising:

when the remaining hosts in the rack lack the additional resources to meet the additional resource requirements:

selecting another rack for the additional application;

selecting another host in the other rack with the additional resources; and

allocating the additional resources on the other host to the additional application.

4 . The method of claim 1 , wherein selecting the rack in the set of racks based on the priority comprises:

generating an ordering of the racks according to the priority; and

selecting the rack from the ordering.

5 . The method of claim 1 , wherein selecting the host based on the one or more additional priorities comprises:

generating an ordering of the subset of the hosts in the rack according to the one or more additional priorities; and

selecting the host from the ordering.

6 . The method of claim 5 , wherein generating the ordering of the subset of the hosts according to the one or more additional priorities comprises:

ordering the subset of the hosts according to a first priority in the one or more additional priorities;

obtaining a group of hosts with equal rank in the ordered subset of hosts; and

ordering the group of hosts according to a second priority in the one or more additional priorities.

7 . The method of claim 5 , wherein the one or more additional priorities comprise matching one or more of the resource requirements to the host with a smallest set of available resources.

8 . The method of claim 1 , wherein selecting the host based on the one or more additional priorities comprises:

applying an optimization technique to the resource requirements, the priority, and the available resources to select the host with the set of resources that meets the resource requirements.

9 . The method of claim 1 , wherein the priority comprises diversifying instances of the application across multiple racks.

10 . The method of claim 1 , wherein the set of resource requirements further comprises at least one of:

a storage requirement;

a network requirement;

a software requirement;

a containerization requirement;

an external device requirement; and

a graphics-processing unit (GPU) allocation.

11 . The method of claim 1 , wherein allocating the resources on the host to the application comprises:

updating a centralized record of the available resources on the host with the allocated resources.

12 . An apparatus, comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

obtain a set of resource requirements for an application, wherein the resource requirements comprise a processor allocation and a memory allocation;

identify a set of hosts in a set of racks with available resources that meet the resource requirements;

select, for the application, a rack in the set of racks based on a priority associated with resource allocation for the application;

select, for the application, a host in the rack based on one or more additional priorities associated with resource allocation for the application; and

allocate the resources on the host to the application.

13 . The apparatus of claim 12 , wherein the memory further stores instructions that, when executed by the one or more processors, cause the apparatus to:

select the host for use in allocating additional resources to an additional application; and

when the host lacks the additional resources to meet additional resource requirements of the additional application after the resources are allocated to the application, search remaining hosts in the rack for the additional resources.

14 . The apparatus of claim 13 , wherein the memory further stores instructions that, when executed by the one or more processors, cause the apparatus to:

when the remaining hosts in the rack lack the additional resources to meet the additional resource requirements:

select another rack for the additional application;

select another host in the other rack with the additional resources; and

allocate the additional resources on the other host to the additional application.

15 . The apparatus of claim 12 , wherein selecting the host based on the one or more additional priorities comprises:

ordering the subset of the hosts according to a first priority in the one or more additional priorities;

obtaining a group of hosts with equal rank in the ordered subset of hosts;

ordering the group of hosts according to a second priority in the one or more additional priorities; and

selecting the host from the ordered group of hosts.

16 . The apparatus of claim 12 , wherein selecting the host based on the one or more additional priorities comprises:

applying an optimization technique to the resource requirements, the priority, and the available resources to select the host with the set of resources that meets the resource requirements.

17 . The apparatus of claim 12 , wherein the priority comprises diversifying instances of the application across multiple racks.

18 . The apparatus of claim 12 , wherein the set of resource requirements further comprises at least one of:

a storage requirement;

a network requirement;

a software requirement;

a containerization requirement;

an external device requirement; and

a graphics-processing unit (GPU) allocation.

19 . A system, comprising:

a data repository comprising a non-transitory computer-readable medium comprising instructions that, when executed, cause the system to track available resources in a data center; and

an allocation module comprising a non-transitory computer-readable medium comprising instructions that, when executed, cause the system to:

obtain a set of resource requirements for an application, wherein the resource requirements comprise a processor allocation and a memory allocation;

query the data repository to identify, in the data center, a set of hosts in a set of racks with available resources that meet the resource requirements;

select, for the application, a rack in the set of racks based on a priority associated with resource allocation for the application;

select, for the application, a host in the rack based on one or more additional priorities associated with resource allocation for the application; and

allocate the resources on the host to the application.

20 . The system of claim 19 , wherein the set of resource requirements further comprises at least one of:

a storage requirement;

a network requirement;

a software requirement;

a containerization requirement;

an external device requirement; and

a graphics-processing unit (GPU) allocation.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2017
From: CAFFEE, ALLAN M.; THAPAR, PANKIT
To: LINKEDIN CORPORATION
Reel/Frame 041572/0957 →