IP Library Granted Patent US 9,742,675
Granted Patent B2
US 9,742,675 · App. 14/353,266 · Granted Aug 22, 2017

Management of bandwidth efficiency and fairness in cloud computing

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,742,675
App. No.
14/353,266
Granted
Aug 22, 2017
Kind
B2
Abstract

Technologies are generally described to manage bandwidth efficiency and fairness in cloud computing. According to some examples, bottleneck links may be determined in a network connecting communication device pairs. A first bandwidth allocation may be determined of a first subset of the communication device pairs communicating through the bottleneck links. A second bandwidth allocation may be determined of a second subset of the communication device pairs unable to communicate through the bottleneck links. Then, the first bandwidth may be adjusted based on an analysis of the first bandwidth, the second bandwidth, a first weight attribute associated with the first subset and a second weight attribute associated with the second subset.

Claims (83)

1. A method to manage bandwidth efficiency and fairness in cloud computing, the method comprising:

determining, by one of a core switch, a rack switch, and an aggregate switch of a layered datacenter communication network that communicatively couples communication device pairs and that is configured to facilitate communication between the communication device pairs, a bottleneck link in the layered datacenter communication network;

determining, by one of the core switch, the rack switch, and the aggregate switch, a first bandwidth allocation of a first subset of the communication device pairs that communicate through the bottleneck link;

determining, by one of the core switch, the rack switch, and the aggregate switch, a second bandwidth allocation of a second subset of the communication device pairs that communicate through another link in the layered datacenter communication network;

computing, by one of the core switch, the rack switch, and the aggregate switch:

a first weight attribute associated with the first subset of the communication device pairs based on a first number of other communication device pairs in communication with the first subset of the communication device pairs through the layered datacenter communication network, and based on a first weight of each communication device within the first subset of the communication device pairs; and

a second weight attribute associated with the second subset of the communication device pairs based on a second number of other communication device pairs in communication with the second subset of the communication device pairs through the layered datacenter communication network, and based on a second weight of each communication device within the second subset of the communication device pairs; and

assigning, by one of the core switch, the rack switch, and the aggregate switch, a portion of the first bandwidth allocation to the second subset of the communication device pairs in addition to the second bandwidth allocation already assigned to the second subset of the communication device pairs such that total allocated bandwidths to the first subset of the communication device pairs and the second subset of the communication device pairs are proportional to the first weight attribute and the second weight attribute respectively associated with the first subset of the communication device pairs and the second subset of the communication device pairs.

2. The method of claim 1 , wherein determining the bottleneck link includes determining a bottleneck link that includes at least one from a set of a core link, an aggregate link, and a rack link, and wherein the core link communicatively couples the core switch to a plurality of aggregate switches, the aggregate link communicatively couples each of the plurality of aggregate switches to a plurality of rack switches, and the rack link communicatively couples each of the plurality of rack switches to the communication device pairs.

3. The method of claim 2 , wherein the core link includes a parent link of the aggregate link, and the aggregate link includes another parent link of the rack link.

4. The method of claim 1 , wherein determining the first bandwidth allocation and the second bandwidth allocation includes determining a core bandwidth allocation, an aggregate bandwidth allocation, and a rack bandwidth allocation.

5. The method of claim 4 , wherein determining the core bandwidth allocation includes determining a first aggregate value of links associated with node devices at a top level of the layered datacenter communication network, wherein determining the aggregate bandwidth allocation includes determining a second aggregate value of links associated with node devices at a middle level of the layered datacenter communication network, and wherein determining the rack bandwidth allocation includes determining a third aggregate value of links associated with node devices at a bottom level of the layered datacenter communication network.

6. The method of claim 1 , wherein determining the first bandwidth allocation and the second bandwidth allocation includes:

determining a first aggregate value of a rack bandwidth allocation of the first subset; and

determining a second aggregate value of another rack bandwidth allocation of the second subset.

7. The method of claim 6 , further comprising:

computing a ratio value by comparing the first aggregate value to the second aggregate value;

increasing the second bandwidth allocation according to the ratio value and the second weight attribute; and

decreasing the first bandwidth allocation according to the ratio value and the first weight attribute.

8. The method of claim 1 , further comprising:

determining a first aggregate value of an aggregate bandwidth allocation of the first subset; and

determining a second aggregate value of another aggregate bandwidth allocation of the second subset.

9. The method of claim 8 , further comprising:

computing a ratio value by comparing the first aggregate value to the second aggregate value;

increasing the second bandwidth allocation according to the ratio value and the second weight attribute; and

decreasing the first bandwidth allocation according to the ratio value and the first weight attribute.

10. The method of claim 1 , further comprising:

maintaining the first bandwidth allocation and the second bandwidth allocation below a capacity threshold associated with the bottleneck link.

11. A switch to manage bandwidth efficiency and fairness in cloud computing, the switch comprising:

a memory configured to store instructions, wherein the instructions facilitate management of bandwidth for communication through a network that communicatively couples communication device pairs; and

a processor coupled to the memory, wherein the processor is configured to execute the stored instructions to perform or cause to be performed:

determine a bottleneck link in the network, wherein the bottleneck link includes at least one from a set of a core link, an aggregate link, and a rack link;

determine a first bandwidth allocation of a first subset of the communication device pairs that communicate through the bottleneck link;

determine a second bandwidth allocation of a second subset of the communication device pairs that communicate through another link in the network;

compute, by one of a core switch, a rack switch, and an aggregate switch:

a first weight attribute associated with the first subset of the communication device pairs based on a first number of other communication device pairs in communication with the first subset of the communication device pairs through the network, and based on a first weight of each communication device within the first subset of the communication device pairs; and

a second weight attribute associated with the second subset of the communication device pairs based on a second number of other communication device pairs in communication with the second subset of the communication device pairs through the network, and based on a second weight of each communication device within the second subset of the communication device pairs; and

assign a portion of the first bandwidth allocation to the second subset of the communication device pairs in addition to the second bandwidth allocation already assigned to the second subset of the communication device pairs such that total allocated bandwidths to the first subset of the communication device pairs and the second subset of the communication device pairs are proportional to the first weight attribute and the second weight attribute respectively associated with the first subset of the communication device pairs and the second subset of the communication device pairs.

12. The switch according to claim 11 , wherein the switch includes one of a core switch, a rack switch, and an aggregate switch.

13. The switch according to claim 11 , wherein the first bandwidth allocation and the second bandwidth allocation include a core bandwidth allocation, an aggregate bandwidth allocation, and a rack bandwidth allocation, and wherein the core bandwidth allocation includes a first aggregate value of links associated with node devices at atop level of the network, the aggregate bandwidth allocation includes a second aggregate value of links associated with node devices at a middle level of the network, and the rack bandwidth allocation includes a third aggregate value of links associated with node devices at a bottom level of the network.

14. The switch according to claim 11 , wherein the processor is configured to execute the stored instructions to perform or cause to be performed:

determine a first aggregate value of a rack bandwidth allocation of the first subset; and

determine a second aggregate value of another rack bandwidth allocation of the second subset.

15. The switch according to claim 14 , wherein the processor is configured to execute the stored instructions to perform or cause to be performed:

compute a ratio value by comparison of the first aggregate value to the second aggregate value;

increase the second bandwidth allocation according to the ratio value and the second weight attribute; and

decrease the first bandwidth allocation according to the ratio value and the first weight attribute.

16. The switch according to claim 11 , wherein the processor is configured to execute the stored instructions to perform or cause to be performed:

determine a first aggregate value of an aggregate bandwidth allocation of the first subset; and

determine a second aggregate value of another aggregate bandwidth allocation of the second subset.

17. The switch according to claim 16 , wherein the processor is configured to execute the stored instructions to perform or cause to be performed:

compute a ratio value by comparison of the first aggregate value to the second aggregate value;

increase the second bandwidth allocation according to the ratio value and the second weight attribute; and

decrease the first bandwidth allocation according to the ratio value and the first weight attribute.

18. The switch according to claim 11 , wherein the processor is configured to execute the stored instructions to perform or cause to be performed:

maintain the first bandwidth allocation and the second bandwidth allocation below a capacity threshold associated with the bottleneck link.

19. A datacenter to manage bandwidth efficiency and fairness in cloud computing, the datacenter comprising:

communication device pairs; and

a plurality of switches configured to perform aggregate switch, rack switch, or core switch operations associated with facilitation of communications between the communication device pairs, wherein at least one switch of the plurality of switches comprises:

a memory configured to store instructions; and

a processor coupled to the memory, wherein the processor is configured to execute the stored instructions to perform or cause to be performed:

determine a bottleneck link in a network that communicatively couples a first subset of the communication device pairs, wherein the bottleneck link includes at least one from a set of a core link, an aggregate link, and a rack link, and wherein the core link includes a parent link of the aggregate link, and the aggregate link includes another parent link of the rack link;

determine a first bandwidth allocation of the first subset of the communication device pairs that communicate through the bottleneck link;

determine a second bandwidth allocation of a second subset of the communication device pairs that communicate through another link in the network;

compute:

a first weight attribute associated with the first subset of the communication device pairs based on a first number of other communication device pairs in communication with the first subset of the communication device pairs through the network, and based on a first weight of each communication device within the first subset of the communication device pairs; and

a second weight attribute associated with the second subset of the communication device pairs based on a second number of other communication device pairs in communication with the second subset of the communication device pairs through the network, and based on a second weight of each communication device within the second subset of the communication device pairs, respectively; and

assign a portion of the first bandwidth allocation to the second subset of the communication device pairs in addition to the second bandwidth allocation already assigned to the second subset of the communication device pairs such that total allocated bandwidths to the first subset of the communication device pairs and the second subset of the communication device pairs are proportional to the first weight attribute and the second weight attribute respectively associated with the first subset of the communication device pairs and the second subset of the communication device pairs.

20. The datacenter according to claim 19 , wherein the first bandwidth allocation and the second bandwidth allocation include a core bandwidth allocation, an aggregate bandwidth allocation, and a rack bandwidth allocation, and wherein the core bandwidth allocation includes a first aggregate value of links associated with node devices at a top level of the network, the aggregate bandwidth allocation includes a second aggregate value of links associated with node device at middle level of the network, and the rack bandwidth allocation includes a third aggregate value of links associated with node devices at a bottom level of the network.

21. The datacenter according to claim 19 , wherein the processor is configured to execute the stored instructions to perform or cause to be performed:

determine a first aggregate value of a rack bandwidth allocation of the first subset;

determine a second aggregate value of another rack bandwidth allocation of the second subset;

compute a ratio value by comparison of the first aggregate value to the second aggregate value;

increase the second bandwidth allocation according to the ratio value and the second weight attribute; and

decrease the first bandwidth allocation according to the ratio value and the first weight attribute.

22. The datacenter according to claim 19 , wherein the processor is configured to execute the stored instructions to perform or cause to be performed:

determine a first aggregate value of an aggregate bandwidth allocation of the first subset;

determine a second aggregate value of another aggregate bandwidth allocation of the second subset;

compute a ratio value by comparison of the first aggregate value to the second aggregate value;

increase the second bandwidth allocation according to the ratio value and the second weight attribute; and

decrease the first bandwidth allocation according to the ratio value and the first weight attribute.

23. The datacenter according to claim 19 , wherein the processor is configured to execute the stored instructions to perform or cause to be performed:

maintain the first bandwidth allocation and the second bandwidth allocation below a capacity threshold associated with the bottleneck link.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2019
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 049924/0794 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2014
From: ANSARI, NIRWAN; SUN, XIANG
To: NEW JERSEY INSTITUTE OF TECHNOLOGY
Reel/Frame 032731/0470 →