Method and apparatus for distributing load among a plurality of service nodes
First Claim
1. A system for performing a service on data messages, the system comprising:
- a service node (SN) group comprising a primary service node (PSN) and at least one secondary service node (SSN); and
a set of load balancers for directing data message flows to service nodes in the SN group by (i) computing a hash value from the flow'"'"'s header parameter set upon receiving a particular new data message flow, (ii) directing data messages of the particular flow to a particular service node that is associated with a hash value range that contains the computed hash value, and (iii) storing a flow-connection state that identifies the particular service node as the service node of the particular flow for subsequent data messages of the particular flow,each service node for performing the service on the data messages of the flows that the load balancer (LB) set directs to it,wherein the PSN is the only SN that provides updated SN group membership data to the LB set, andwherein based on updated SN group membership data, the LB set modifies how the LB set distributes data message flows to the service nodes of the SN group.
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.
190 Citations
19 Claims
-
1. A system for performing a service on data messages, the system comprising:
-
a service node (SN) group comprising a primary service node (PSN) and at least one secondary service node (SSN); and a set of load balancers for directing data message flows to service nodes in the SN group by (i) computing a hash value from the flow'"'"'s header parameter set upon receiving a particular new data message flow, (ii) directing data messages of the particular flow to a particular service node that is associated with a hash value range that contains the computed hash value, and (iii) storing a flow-connection state that identifies the particular service node as the service node of the particular flow for subsequent data messages of the particular flow, each service node for performing the service on the data messages of the flows that the load balancer (LB) set directs to it, wherein the PSN is the only SN that provides updated SN group membership data to the LB set, and wherein based on updated SN group membership data, the LB set modifies how the LB set distributes data message flows to the service nodes of the SN group. - View Dependent Claims (2, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
3. A system for performing a service on data messages, the system comprising:
-
a service node (SN) group comprising a primary service node (PSN) and at least one secondary service node (SSN); and a set of load balancers for directing data message flows to service nodes in the SN group by (i) computing a hash value from the flow'"'"'s header parameter set upon receiving a particular new data message flow, (ii) directing data messages of the particular flow to a particular service node that is associated with a hash value range that contains the computed hash value, and (iii) storing a flow-connection state that identifies the particular service node as the service node of the particular flow for subsequent data messages of the particular flow, each service node for performing the service on the data messages of the flows that the load balancer (LB) set directs to it, the PSN further for providing updated SN group membership data to the LB set, based on updated SN group membership data, the LB set modifying how the LB set distributes data message flows to the service nodes of the SN group by modifying the number of hash value ranges. - View Dependent Claims (4)
-
-
7. A system for performing a service on data messages, the system comprising:
-
a service node (SN) group comprising a primary service node (PSN) and at least one secondary service node (SSN), wherein each service node performs the service on the data messages of the flows that are directed to it; and a set of load balancers (LBs) for directing data message flows to service nodes in the SN group based on current SN group membership data stored by the LB set by (i) computing a hash value from the flow'"'"'s header parameter set upon receiving a particular new data message flow, (ii) directing data messages of the particular flow to a particular service node that is associated with a hash value range that contains the computed hash value, and (iii) storing a flow-connection state that identifies the particular service node as the service node of the particular flow for subsequent data messages of the particular flow, wherein the PSN further provides updated SN group membership data to the LB set and the SSNs, and wherein after an SN group membership has been updated but before the LB set updates group membership data that the LB set maintains, a first SSN receives a data message of a first flow that the LB set should have forwarded to a second service node based on the updated SN group membership and forwards the data message to the second service node. - View Dependent Claims (18)
-
-
8. A system for performing a service on data messages, the system comprising:
-
a service node (SN) group comprising a primary service node (PSN) and at least one secondary service node (SSN), wherein each service node performs the service on the data messages of the flows that are directed to it; and a set of load balancers (LBs) for directing data message flows to service nodes in the SN group based on current SN group membership data stored by the LB set by (i) computing a hash value from the flow'"'"'s header parameter set upon receiving a particular new data message flow, (ii) directing data messages of the particular flow to a particular service node that is associated with a hash value range that contains the computed hash value, and (iii) storing a flow-connection state that identifies the particular service node as the service node of the particular flow for subsequent data messages of the particular flow, wherein the PSN and SSN receive group membership updates from a set of controllers that update the group membership, wherein the PSN further provides updated SN group membership data to the LB set, and wherein after an SN group membership has been updated but before the LB set updates group membership data that the LB set maintains, a first SSN receives a data message of a first flow that the LB set should have forwarded to a second service node based on the updated SN group membership and forwards the data message to the second service node. - View Dependent Claims (19)
-
Specification