Systems and methods for least connection load balancing by multi-core device
First Claim
1. A method for load balancing a plurality of connections to a plurality of services across a plurality of packet engines of a multi-core device, the method comprising:
- (a) establishing a number of sub-slots in each slot of each of a plurality of packet engines executing on a device intermediary between a plurality of clients and a plurality of services, the number of sub-slots corresponding to a number of the packet engines executing on the device, each of the packet engines executing on a respective core from a plurality of cores on the device, each slot of each packet engine for tracking a different number of active connections allocated to a service accessible via the corresponding packet engine;
(b) assigning, by the device, a first service and a second service each having no active connections, to each of the packet engines in a first slot corresponding to no active connections, the first service and the second service assigned to different sub-slots of the first slot in adjacent packet engines, the first service and the second service configured to be allocated with active connections for load balancing by the device; and
(c) updating, by the device responsive to allocation of a first active connection to the first service, the first service from a sub-slot in the first slot of a first packet engine of the plurality of packet engines, to a corresponding sub-slot in a second slot of the first packet engine, the second slot corresponding to one active connection allocated to the first service via the load balancing.
7 Assignments
0 Petitions
Accused Products
Abstract
The present invention is directed towards systems and methods for load balancing by a multi-core device intermediary between clients and services. The device may establish sub-slots in each slot of the device'"'"'s packet engines. The number of sub-slots may correspond to the packet engine count. Each slot may track a different number of active connections allocated to a service. The device may assign a first and second service to each packet engine in a first slot corresponding to no active connections. These services may be assigned to different sub-slots in adjacent packet engines. The device may update, responsive to allocation of a first active connection to the first service, the first service from a sub-slot in the first slot of a first packet engine, to a corresponding sub-slot in a second slot. The second slot may correspond to one active connection allocated to the first service.
-
Citations
20 Claims
-
1. A method for load balancing a plurality of connections to a plurality of services across a plurality of packet engines of a multi-core device, the method comprising:
-
(a) establishing a number of sub-slots in each slot of each of a plurality of packet engines executing on a device intermediary between a plurality of clients and a plurality of services, the number of sub-slots corresponding to a number of the packet engines executing on the device, each of the packet engines executing on a respective core from a plurality of cores on the device, each slot of each packet engine for tracking a different number of active connections allocated to a service accessible via the corresponding packet engine; (b) assigning, by the device, a first service and a second service each having no active connections, to each of the packet engines in a first slot corresponding to no active connections, the first service and the second service assigned to different sub-slots of the first slot in adjacent packet engines, the first service and the second service configured to be allocated with active connections for load balancing by the device; and (c) updating, by the device responsive to allocation of a first active connection to the first service, the first service from a sub-slot in the first slot of a first packet engine of the plurality of packet engines, to a corresponding sub-slot in a second slot of the first packet engine, the second slot corresponding to one active connection allocated to the first service via the load balancing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for load balancing a plurality of connections to a plurality of services across a plurality of packet engines of a multi-core device, comprising:
-
a plurality of packet engines executing on a device intermediary between a plurality of clients and a plurality of services; and a load balancer executing on the device, the load balancer; establishing a number of sub-slots in each slot of each of the plurality of packet engines, the number of sub-slots corresponding to a number of the packet engines executing on the device, each of the packet engines executing on a respective core from a plurality of cores on the device, each slot of each packet engine for tracking a different number of active connections allocated to a service accessible via the corresponding packet engine, assigning a first service and a second service each having no active connections, to each of the packet engines in a first slot corresponding to no active connections, the first service and the second service assigned to different sub-slots of the first slot in adjacent packet engines, the first service and the second service configured to be allocated with active connections for load balancing by the device, and updating, responsive to allocation of a first active connection to the first service, the first service from a sub-slot in the first slot of a first packet engine of the plurality of packet engines, to a corresponding sub-slot in a second slot of the first packet engine, the second slot corresponding to one active connection allocated to the first service via the load balancing. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification