IP Library Granted Patent US 12,301,461
Granted Patent B2
US 12,301,461 · App. 18/373,568 · Granted May 13, 2025

Dynamically processing data message flows using different NUMA nodes of a processing system

Inventors: Raghav Kempanna (Santa Clara, CA); Tathagat Priyadarshi (Bangalore, IN); Vipin Padmam Ramesh (Nagercoil, IN); Kumara Parameshwaran Rathnavel (Bangalore, IN); Srinivasa Srikanth Podila (Bangalore, IN); Rajagopal Sreenivasan (Bangalore, IN); Samar Yadav (Bengaluru, IN)
Assignee: VMWare LLC
H04L47/125H04L47/24
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 12,301,461
App. No.
18/373,568
Granted
May 13, 2025
Kind
B2
Abstract

Some embodiments provide a novel method for dynamically processing data message flows using different non-uniform memory access (NUMA) nodes of a processing system. Each NUMA node includes a memory and processors that can access data other memories of other NUMA nodes. A load balancing application associated with a first NUMA node receives flows destined for an endpoint application. The flows are assigned to the first NUMA node to be forwarded to the endpoint application. The load balancing application monitors a central processing (CPU) usage of the first NUMA node to determine whether the CPU usage of the first NUMA node exceeds a particular threshold. When the CPU usage of the first NUMA node exceeds the particular threshold, the load balancing application reassigns at least a subset of the flows to the second NUMA node for processing.

Claims (38)

1. A method for dynamically processing data message flows using different non-uniform memory access (NUMA) nodes of a processing system, each NUMA node comprising a local memory and a set of processors that can access data from local memories of other NUMA nodes, the method comprising:

at a load balancing application associated with a first NUMA node:

receiving data message flows destined for an endpoint application, wherein the data message flows are assigned to the first NUMA node to be forwarded to the endpoint application;

monitoring a central processing (CPU) usage of the first NUMA node to determine whether the CPU usage of the first NUMA node exceeds a particular threshold;

when the CPU usage of the first NUMA node exceeds the particular threshold, reassigning at least a subset of the data message flows to the second NUMA node for processing;

wherein unencapsulated flows are reassigned to the second NUMA node and encapsulated flows maintain assignment to the first NUMA node.

2. The method of claim 1 further comprising:

after reassigning the at least subset of data message flows to the second NUMA node:

forwarding the at least subset of data message flows to the second NUMA node to be processed;

receiving processed data message flows from the second NUMA node; and

forwarding the processed data message flows to the endpoint application.

3. The method of claim 1 , wherein the at least subset of data message flows comprises large data messages such that data message flows comprising small data messages maintain assignment to the first NUMA node.

4. The method of claim 1 , wherein the data message flows are initially assigned to the first NUMA node based on quality of service (QOS) parameters of the endpoint application.

5. The method of claim 4 , wherein the data message flows are initially assigned by a network administrator.

6. The method of claim 4 , wherein the data message flows are initially assigned by the load balancing application.

7. The method of claim 4 , wherein the data message flows are initially assigned to the first NUMA node because the data message flows are critical data message flows.

8. The method of claim 7 , wherein the critical data message flows are flows requiring a low latency.

9. The method of claim 7 , wherein the data message flows are a first set of data message flows, the endpoint application is a first endpoint application, and a second set of data message flows associated with a second endpoint application is assigned to the second NUMA node.

10. The method of claim 9 , wherein:

the first endpoint application is implemented by a first set of endpoint application instances,

the second endpoint application is implemented by a second set of endpoint application instances, and

the first and second sets of endpoint application instances execute on a set of one or more servers.

11. The method of claim 9 , wherein:

the first endpoint application is implemented by a first set of endpoint application instances executing on a first set of one or more servers, and

the second endpoint application is implemented by a second set of endpoint application instances executing on a second set of one or more servers.

12. The method of claim 9 , wherein the second set of data message flows is assigned to the second NUMA node because the second set of data message flows is a set of non-critical data message flows while the first set of data message flows is a set of critical data message flows.

13. The method of claim 12 , wherein the critical flows are flows requiring a low latency and the set of non-critical flows are flows not requiring a low latency.

14. The method of claim 1 , wherein the load balancing application is a first instance of a distributed load balancing application implemented by a plurality of instances operating on the different NUMA nodes.

15. The method of claim 1 further comprising, after the reassigning, storing a record, associating the at least subset of data message flows with the second NUMA node, in the local memory of the first NUMA node.

16. The method of claim 15 , wherein the record specifies, for each data message flow in the at least subset of data message flows, a flow identifier (ID) identifying the data message flow and a NUMA node ID identifying the second NUMA node.

17. The method of claim 1 , wherein the data message flows specify a fully qualified domain name (FQDN), specifying the endpoint application, as a destination of the data message flows.

18. The method of claim 17 , wherein the endpoint application is implemented by a set of endpoint application instances, and the FQDN specifies a particular endpoint application instance as the destination of the data message flows.

19. A non-transitory machine readable medium storing a program for execution by at least one processing unit for dynamically processing data message flows using different non-uniform memory access (NUMA) nodes of a processing system, each NUMA node comprising a local memory and a set of processors that can access data other local memories of other NUMA nodes, the program comprising sets of instructions for:

at a load balancing application associated with a first NUMA node:

receiving data message flows destined for an endpoint application, wherein the data message flows are assigned to the first NUMA node to be forwarded to the endpoint application;

monitoring a central processing (CPU) usage of the first NUMA node to determine whether the CPU usage of the first NUMA node exceeds a particular threshold;

when the CPU usage of the first NUMA node exceeds the particular threshold, reassigning at least a subset of the data message flows to the second NUMA node for processing;

wherein unencapsulated flows are reassigned to the second NUMA node and encapsulated flows maintain assignment to the first NUMA node.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2024
From: KEMPANNA, RAGHAV; RATHNAVEL, KUMARA PARAMESHWARAN
To: VMWARE, INC.
Reel/Frame 069232/0475 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2024
From: PRIYADARSHI, TATHAGAT; RAMESH, VIPIN PADMAM; PODILA, SRINIVAS SRIKANTH; SREENIVASAN, RAJAGOPAL; YADAV, SAMAR
To: VMWARE, INC.
Reel/Frame 069230/0628 →
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
Priority Claims (1)
IN 202341046835 · Jul 12, 2023 · national
Continuity (1)
Related Publication 20250023820A1 · Jan 16, 2025
References Cited (4)
US 7430755B1 · Hughes · 2008 [cited by examiner]
US 20140310390A1 · Sorenson, III · 2014 [cited by examiner]
US 20170168715A1 · Eshwarappa · 2017 [cited by examiner]
US 20190173785A1 · Kameyama · 2019 [cited by examiner]