Stateful services on stateless clustered edge
First Claim
1. A method of performing stateful services on a first flow and a second flow different from the first flow but related to the first flow, the method comprising:
- performing a stateful service for the first flow at a first node in a plurality of nodes that each performs the stateful service, wherein state information of the first flow is maintained by the first node;
receiving, at the first node, packets belonging to the second flow from a second node in the plurality of nodes, wherein a consistent hash function is used to initially assign particular flows to particular nodes in the plurality of nodes to perform the stateful service, wherein the consistent hash function assigns the first flow to the first node and the second flow to the second node, wherein the second node receives the packets belonging to the second flow based on the initial assignment of the consistent hash and forwards the second flow'"'"'s packets to the first node because the second flow is related to the first flow; and
performing the stateful service on the received packets of the second flow at the first node by using the state information of the first flow, wherein the stateful service for the second flow requires the state information of the first flow.
1 Assignment
0 Petitions
Accused Products
Abstract
In order to enable dynamic scaling of network services at the edge, novel systems and methods are provided to enable addition of add new nodes or removal of existing nodes while retaining the affinity of the flows through the stateful services. The methods provide a cluster of network nodes that can be dynamically resized to handle and process network traffic that utilizes stateful network services. The existing traffic flows through the edge continue to function during and after the changes to membership of the cluster. All nodes in the cluster operate in active-active mode, i.e., they are receiving and processing traffic flows, thereby maximizing the utilization of the available processing power.
-
Citations
20 Claims
-
1. A method of performing stateful services on a first flow and a second flow different from the first flow but related to the first flow, the method comprising:
-
performing a stateful service for the first flow at a first node in a plurality of nodes that each performs the stateful service, wherein state information of the first flow is maintained by the first node; receiving, at the first node, packets belonging to the second flow from a second node in the plurality of nodes, wherein a consistent hash function is used to initially assign particular flows to particular nodes in the plurality of nodes to perform the stateful service, wherein the consistent hash function assigns the first flow to the first node and the second flow to the second node, wherein the second node receives the packets belonging to the second flow based on the initial assignment of the consistent hash and forwards the second flow'"'"'s packets to the first node because the second flow is related to the first flow; and performing the stateful service on the received packets of the second flow at the first node by using the state information of the first flow, wherein the stateful service for the second flow requires the state information of the first flow. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of performing stateful services on a first flow and a second flow different from the first flow but related to the first flow, the method comprising:
-
performing a stateful service for the first flow at a first node in a plurality of nodes that each performs the stateful service, wherein state information of the first flow is maintained by the first node; identifying a second node in the plurality of nodes for performing the stateful service for a second flow, wherein the second flow requires the state information of the first flow; and forwarding the state information of the first flow from the first node to the second node based on the identification, for the second node to perform the stateful service on the second flow that is related to the first flow but is a different flow than the first flow. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A non-transitory machine readable medium storing sets of instructions for performing stateful services on a first flow and a second flow different from the first flow but related to the first flow, the sets of instructions for execution by a set of processing units, the sets of instructions comprising sets of instructions for:
-
performing a stateful service for the first flow at a first node in a plurality of nodes that each performs the stateful service, wherein state information of the first flow is maintained by the first node; receiving, at the first node, packets belonging to the second flow from a second node in the plurality of nodes, wherein a consistent hash function is used to initially assign particular flows to particular nodes in the plurality of nodes to perform the stateful service, wherein the consistent hash function assigns the first flow to the first node and the second flow to the second node, wherein the second node receives the packets belonging to the second flow based on the initial assignment of the consistent hash and forwards the second flow'"'"'s packets to the first node because the second flow is related to the first flow; and performing the stateful service on the received packets of the second flow at the first node by using the state information of the first flow, wherein the stateful service for the second flow requires the state information of the first flow. - View Dependent Claims (15, 16, 17)
-
-
18. A non-transitory machine readable medium storing sets of instructions for performing stateful services on a first flow and a second flow different from the first flow but related to the first flow, the sets of instructions for execution by a set of processing units, the sets of instructions comprising sets of instructions for:
-
performing a stateful service for the first flow at a first node in a plurality of nodes that each performs the stateful service, wherein state information of the first flow is maintained by the first node; identifying a second node in the plurality of nodes for performing the stateful service for a second flow, wherein the second flow requires the state information of the first flow; and forwarding the state information of the first flow from the first node to the second node based on the identification, for the second node to perform the stateful service on the second flow that is related to the first flow but is a different flow than the first flow. - View Dependent Claims (19, 20)
-
Specification