Method and apparatus for distributing load among a plurality of service nodes
First Claim
1. For a service node (SN) group comprising a plurality of service nodes for performing a service on received data message flows, wherein one service node is a primary service node (PSN) and each other service node is a secondary service node (SSN), a non-transitory machine readable medium storing a PSN program comprising sets of instructions for:
- analyzing data message load on each service node;
based on the analysis, identifying several ranges of hash values that are derivable from header values of potential data message flows and associating each range with a service node; and
providing a first set of load balancing parameters (LBPs) to a load balancer (LB) set that distributes the received data message flows to the service nodes of the SN group, wherein the first LBP set comprises the hash value ranges and associated service nodesafter providing the first LBP set to the LB set, continuing to analyze the data message load on the service nodes, and based on the continued analysis, providing a second LBP set to the LB set that has at least one hash range that is not in the first LBP set.
1 Assignment
0 Petitions
Accused Products
Abstract
Some embodiments provide an elastic architecture for providing a service in a computing system. To perform a service on the data messages, the service architecture uses a service node (SN) group that includes one primary service node (PSN) and zero or more secondary service nodes (SSNs). The service can be performed on a data message by either the PSN or one of the SSN. However, in addition to performing the service, the PSN also performs a load balancing operation that assesses the load on each service node (i.e., on the PSN or each SSN), and based on this assessment, has the data messages distributed to the service node(s) in its SN group. Based on the assessed load, the PSN in some embodiments also has one or more SSNs added to or removed from its SN group. To add or remove an SSN to or from the service node group, the PSN in some embodiments directs a set of controllers to add (e.g., instantiate or allocate) or remove the SSN to or from the SN group. Also, to assess the load on the service nodes, the PSN in some embodiments receives message load data from the controller set, which collects such data from each service node. In other embodiments, the PSN receives such load data directly from the SSNs.
195 Citations
20 Claims
-
1. For a service node (SN) group comprising a plurality of service nodes for performing a service on received data message flows, wherein one service node is a primary service node (PSN) and each other service node is a secondary service node (SSN), a non-transitory machine readable medium storing a PSN program comprising sets of instructions for:
-
analyzing data message load on each service node; based on the analysis, identifying several ranges of hash values that are derivable from header values of potential data message flows and associating each range with a service node; and providing a first set of load balancing parameters (LBPs) to a load balancer (LB) set that distributes the received data message flows to the service nodes of the SN group, wherein the first LBP set comprises the hash value ranges and associated service nodes after providing the first LBP set to the LB set, continuing to analyze the data message load on the service nodes, and based on the continued analysis, providing a second LBP set to the LB set that has at least one hash range that is not in the first LBP set. - View Dependent Claims (2, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
6. For a service node (SN) group comprising a plurality of service nodes for performing a service on received data message flows, wherein one service node is a primary service node (PSN) and each other service node is a secondary service node (SSN), a non-transitory machine readable medium storing a PSN program comprising sets of instructions for:
-
analyzing data message load on each service node; based on the analysis, identifying several ranges of hash values that are derivable from header values of potential data message flows and associating each range with a service node; providing to a load balancer (LB) set the hash value ranges and associated service nodes as a first set of load balancing parameters (LBP), the LB set for distributing the received data message flows to the service nodes of the SN group; after providing the first LBP set to the LB set, continuing to analyze message load on each service node; based on the continued analysis, determining that a service node should be added to the SN group; and distributing a second LBP set to add the service node to the SN group, the second LBP set differing from the first LBP set in terms of at least one hash range that is not in the first LBP set. - View Dependent Claims (19)
-
-
7. For a service node (SN) group comprising a plurality of service nodes for performing a service on received data message flows, wherein one service node is a primary service node (PSN) and each other service node is a secondary service node (SSN), a non-transitory machine readable medium storing a PSN program comprising sets of instructions for:
-
analyzing data message load on each service node; based on the analysis, identifying several ranges of hash values that are derivable from header values of potential data message flows and associating each range with a service node; providing to a load balancer (LB) set the hash value ranges and associated service nodes as a first set of load balancing parameters (LBP), the LB set for distributing the received data message flows to the service nodes of the SN group; after providing the first LBP set to the LB set, continuing to analyze message load on each service node; and based on the continued analysis, determining that a service node should be added to the SN group; directing a controller set to add the service node to the SN group; receiving confirmation from the controller set that the service node has been added; and after receiving confirmation, distributing a second LBP set to add the service node to the SN group.
-
-
8. For a service node (SN) group comprising a plurality of service nodes for performing a service on received data message flows, wherein one service node is a primary service node (PSN) and each other service node is a secondary service node (SSN), a non-transitory machine readable medium storing a PSN program comprising sets of instructions for:
-
analyzing data message load on each service node; based on the analysis, identifying several ranges of hash values that are derivable from header values of potential data message flows and associating each range with a service node; providing to a load balancer (LB) set the hash value ranges and associated service nodes as a first set of load balancing parameters (LBP), the LB set for distributing the received data message flows to the service nodes of the SN group; after providing the first LBP set to the LB set, continuing to analyze message load on each service node; based on the continued analysis, determining that a service node should be removed from the SN group; and distributing a second LBP set to remove the service node from the SN group, the second LBP set differing from the first LBP set in terms of at least one hash range that is not in the first LBP set. - View Dependent Claims (20)
-
Specification