IP Library › Granted Patent US 11,768,713
Granted Patent B2
US 11,768,713 · App. 17/234,711 · Granted Sep 26, 2023

Dynamic relocation of pods to optimize inter-pod networking

Inventors: Vidush Vishwanath (Bellevue, WA); Kendall Stratton (Phoenix, AZ); Rohit Raina (Woodinville, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/5083G06F9/505G06F9/5077G06F11/3433G06F2209/503G06F2209/505
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,768,713
App. No.
17/234,711
Granted
Sep 26, 2023
Kind
B2
Abstract

Systems and methods for dynamically relocating pods to optimize inter-pod networking efficiency are provided. The method comprises receiving and storing inter-pod traffic data for a plurality of pods. The plurality of pods includes a first pod, a second pod, and a third pod. The method further includes receiving and storing node resource availability data for each node of a plurality of nodes, generating a queue that sorts the plurality of pods by an amount of inter-pod traffic indicated by the inter-pod traffic data, generating a hash that maps one or more parameters to the plurality of nodes, selecting, based on the generated hash, a node of the plurality of nodes, and dynamically relocating a highest ranked pod of the plurality of pods from the generated queue to the selected node.

Claims (51)

1. A computer-implemented method, the method comprising:

receiving and storing inter-pod traffic data for a plurality of pods, wherein the plurality of pods includes a first pod, a second pod, and a third pod, and wherein the inter-pod traffic data includes traffic data sent from the first pod to the second pod and the third pod, from the second pod to the first pod and the third pod, and from the third pod to the first pod and the second pod;

receiving and storing node resource availability data for each node of a plurality of nodes;

generating a queue that sorts the plurality of pods by an amount of inter-pod traffic indicated by the inter-pod traffic data;

generating a hash that maps one or more parameters to the plurality of nodes;

selecting, based on the generated hash, a node of the plurality of nodes; and

dynamically relocating a highest ranked pod of the plurality of pods from the generated queue to the selected node of the plurality of nodes.

2. The computer-implemented method of claim 1 , further comprising calculating resource usage for each of the first pod, the second pod, and the third pod.

3. The computer-implemented method of claim 1 , wherein the receiving and storing inter-pod traffic data and the receiving and storing node resource availability data are performed at an interval based on a reevaluation time parameter.

4. The computer-implemented method of claim 1 , wherein the one or more parameters include a CPU measurement interval, a memory measurement interval, a disk measurement interval, and a network measurement interval.

5. The computer-implemented method of claim 4 , wherein the one or more parameters further include a percentage optimized parameter applied to a sum of inter-pod network usage of the pods of the plurality of pods that have been relocated.

6. The computer-implemented method of claim 1 , wherein selecting the node comprises:

generating a pod set identified for relocation, the pod set including at least one of the first pod, the second pod, or the third pod;

identifying the node of the plurality of nodes based on the one or more parameters being breached; and

selecting the identified node of the plurality of nodes for relocation of the pod set.

7. The computer-implemented method of claim 6 , wherein selecting the node of the plurality of nodes for relocation of the pod set includes confirming relocating the pod set to the selected node maintains a usage value for each parameter of the one or more parameters below a maximum threshold.

8. The computer-implemented method of claim 1 , wherein a value for each parameter of the one or more parameters is set by a user.

9. One or more servers configured to dynamically relocate pods, the one or more servers comprising:

a memory configured to:

store received inter-pod traffic data for a plurality of pods, wherein the plurality of pods includes a first pod, a second pod, and a third pod, and wherein the inter-pod traffic data includes traffic data sent from the first pod to the second pod and the third pod, from the second pod to the first pod and the third pod, and from the third pod to the first pod and the second pod, and

store received node resource availability data for each node of a plurality of nodes; and

a processor configured to:

generate a queue that sorts the plurality of pods by an amount of inter-pod traffic indicated by the inter-pod traffic data;

generate a hash that maps one or more parameters to the plurality of nodes;

select, based on the generated hash, a node of the plurality of nodes;

generate a pod set, from the generated queue, identified for relocation, the pod set including at least one pod of the first pod, the second pod, or the third pod; and

dynamically relocating the pod set to the selected node of the plurality of nodes.

10. The one or more servers of claim 9 , wherein the processor is further configured to calculate resource usage for each of the first pod, the second pod, and the third pod.

11. The one or more servers of claim 9 , wherein the processor is further configured to store the received inter-pod traffic data and the node resource availability data at an interval based on a reevaluation time parameter.

12. The one or more servers of claim 9 , wherein the one or more parameters include a CPU measurement interval, a memory measurement interval, a disk measurement interval, and a network measurement interval.

13. The one or more servers of claim 12 , wherein the one or more parameters further include a percentage optimized parameter applied to a sum of inter-pod network usage of the pods of the plurality of pods that have been relocated.

14. The one or more servers of claim 9 , wherein, to select the node of the plurality of nodes for relocation of the pod set, the processor is further configured to:

identify the node of the plurality of nodes based on the one or more parameters being breached;

select the identified node of the plurality of nodes for relocation of the pod set; and

confirm relocating the pod set to the node maintains a usage value for each parameter of the one or more parameters below a maximum threshold.

15. One or more computer-storage memory devices embodied with executable operations to dynamically relocate pods that, when executed by a processor, cause the processor to:

receive and store inter-pod traffic data for a plurality of pods, wherein the plurality of pods includes a first pod, a second pod, and a third pod, and wherein the inter-pod traffic data includes traffic data sent from the first pod to the second pod and the third pod, from the second pod to the first pod and the third pod, and from the third pod to the first pod and the second pod;

receive and store node resource availability data for each node of a plurality of nodes;

generate a queue that sorts the plurality of pods by an amount of inter-pod traffic indicated by the inter-pod traffic data;

generate a hash that maps one or more parameters to the plurality of nodes;

select, based on the generated hash, a node of the plurality of nodes; and

dynamically relocate a highest ranked pod of the plurality of pods from the generated queue to the selected node of the plurality of nodes.

16. The one or more computer-storage memory devices of claim 15 , embodied with further operations that, when executed by the processor, cause the processor to calculate resource usage for each of the first pod, the second pod, and the third pod.

17. The one or more computer-storage memory devices of claim 15 , wherein the inter-pod traffic data and the node resource availability data are received and stored at an interval based on a reevaluation time parameter.

18. The one or more computer-storage memory devices of claim 15 , wherein the one or more parameters include a CPU measurement interval, a memory measurement interval, a disk measurement interval, and a network measurement interval.

19. The one or more computer-storage memory devices of claim 18 , wherein the one or more parameters further include a percentage optimized parameter applied to a sum of inter-pod network usage of the pods of the plurality of pods that have been relocated.

20. The one or more computer-storage memory devices of claim 15 , embodied with further operations that, when executed by the processor, cause the processor to:

generate a pod set identified for relocation, the pod set including at least one of the first pod, the second pod, or the third pod;

identify the node of the plurality of nodes based on the one or more parameters being breached;

select the identified node of the plurality of nodes for relocation of the pod set; and

confirm relocating the pod set to the selected node maintains a usage value for each parameter of the one or more parameters below a maximum threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2021
From: VISHWANATH, VIDUSH; STRATTON, KENDALL; RAINA, ROHIT
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 055968/0549 →
Continuity (1)
Related Publication 20220334886A1 · Oct 20, 2022
Cited By (1)
US 12,217,098