IP Library Granted Patent US 11,115,466
Granted Patent B2
US 11,115,466 · App. 16/858,664 · Granted Sep 7, 2021

Distributed network services

Inventors: Murali Basavaiah (Sunnyvale, CA); Ranganathan Rajagopalan (Fremont, CA)
Assignee: VMWARE, INC.
H04L67/1002G06F9/455G06F9/45558H04L67/1029H04L67/2861G06F9/5027G06F2009/45595H04L67/2842H04L67/42
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,115,466
App. No.
16/858,664
Granted
Sep 7, 2021
Kind
B2
Abstract

Providing a distributed network service includes: receiving network traffic at a first physical device; and executing a service engine to participate in the distributed network service. The distributed network service is provided to at least the first target application instance executing in a first VM on the first physical device, and a second target application instance executing in a second VM on a second physical device; and a shared state of the distributed network service is maintained with respect to the first physical device and the second physical device.

Claims (30)

1. A method for managing a set of load balancers that perform a load balancing service for a plurality of target application instances, the method comprising:

collecting state information relating to data messages that the set of load balancers distribute to the plurality of target application instances, the plurality of load balancers and target application instances executing on a plurality of physical devices with at least a set of load balancers executing on a set of physical devices on which a set of target application instances execute;

generating aggregated state information from the collected state information;

distributing the aggregated state information to at least a subset of the plurality of load balancers to cause the subset of load balancers to adjust how they distribute new data message flows to the plurality of target application instances; and

providing to each load balancer in the subset of load balancers a set of numerical values that the load balancer uses to spread the data messages among the target application instances as part of an initial configuration of the load balancer,

wherein each load balancer in the subset of load balancers spreads the data messages among the target application instances based on the set of numerical values, and each load balancer in the subset of load balancers that receives the aggregated state information adjusts the load balancer's set of numerical values based on the aggregated state information.

2. The method of claim 1 , wherein the aggregated state information expresses the data message traffic load on each target application instance in the plurality of target application instances.

3. The method of claim 1 , wherein the aggregated state information expresses at least one of the number of connections to each target application instance and a number of packets processed in a specified time period by each target application instance.

4. The method of claim 1 , wherein the numerical values include one weight value for each target application instance, wherein based on the weight values, each load balancer performs a selection of the target application instances for new data message flows.

5. The method of claim 1 , wherein each load balancer in the set of load balancers executes on a physical device in the set of physical devices along with at least one target application instance.

6. The method of claim 5 , wherein each physical device in the set of physical devices executes a virtual switch that intercepts traffic sent to a target application and redirects the intercepted traffic to a particular load balancer for the particular load balancer to perform the load balancing service to select a target application instance to which the traffic should be directed.

7. The method of claim 6 , wherein a virtual switch executing on a particular physical device redirects the intercepted traffic to a load balancer executing on the same physical device.

8. The method of claim 5 , wherein

for a first set of packets for the target application, the load balancer selects a target application instance executing on the same physical device on which the load balancer executes; and

for a second set of packets for the target application, the load balancer selects a target application instance executing on a different physical device than the physical device on which the load balancer executes.

9. A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for managing a plurality of load balancers that perform a load balancing service for a plurality of target application instances, the program comprising sets of instructions for:

collecting state information relating to data messages that the set of load balancers distribute to the plurality of target application instances, the plurality of load balancers and target application instances executing on a plurality of physical devices with at least a set of load balancers executing on a set of physical devices on which a set of target application instances execute;

generating aggregated state information from the collected state information;

distributing the aggregated state information to at least a subset of the plurality of load balancers to cause the subset of load balancers to adjust how they distribute new data message flows to the plurality of target application instances; and

providing to each load balancer in the subset of load balancers a set of numerical values that the load balancer uses to spread the data messages among the target application instances as part of an initial configuration of the load balancer,

wherein each load balancer in the subset of load balancers spreads the data messages among the target application instances based on the set of numerical values, and each load balancer in the subset of load balancers that receives the aggregated state information adjusts the load balancer's set of numerical values based on the aggregated state information.

10. The non-transitory machine readable medium of claim 9 , wherein the aggregated state information expresses the data message traffic load on each target application instance in the plurality of target application instances.

11. The non-transitory machine readable medium of claim 9 , wherein the aggregated state information expresses at least one of the number of connections to each target application instance and a number of packets processed in a specified time period by each target application instance.

12. The non-transitory machine readable medium of claim 9 , wherein each physical device in the set of physical devices executes:

a load balancer in the set of load balancers;

at least one target application instance; and

a virtual switch that intercepts traffic sent to a target application and redirects the intercepted traffic to the load balancer executing on the physical device for the load balancer to perform the load balancing service to select a target application instance to which the traffic should be directed.

13. The method of claim 12 , wherein

for a first set of packets for the target application, the load balancer selects a target application instance executing on the same physical device on which the load balancer executes, and

for a second set of packets for the target application, the load balancer selects a target application instance executing on a different physical device than the physical device on which the load balancer executes.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
Cited By (2)
US 12,222,801 US 12,413,466