Abstract:
The present application is directed towards using a distributed hash table to track the use of resources and/or maintain the persistency of resources across the plurality of nodes in the multi-node system. More specifically, the systems and methods can maintain the persistency of resources across the plurality of nodes by the use of a global table. A global table may be maintained on each node. Each node's global table enables efficient storage and retrieval of distributed hash table entries. Each global table may contain a linked list of the cached distributed hash table entries that are currently stored on a node.
Abstract:
Described embodiments provide systems and methods for pushing session information to a newly joined node in a cluster of nodes. In the cluster, each node may maintain a session table of existing sessions. One or more nodes may detect a new node has joined the cluster. Each node, responsive to the detection, may apply a hash function on a tuple of each session of the existing sessions in the session table of the node to determine whether one or more existing sessions are identified to be owned by the new node as a result of the hash function. Each node, responsive to identifying that one or more sessions are to be owned by the new node, may push corresponding session information to the new node. The new node may become configured to receive a packet corresponding to the one or more sessions and to process the packet.
Abstract:
Described embodiments provide systems and methods for pushing session information to a newly joined node in a cluster of nodes. In the cluster, each node may maintain a session table of existing sessions. One or more nodes may detect a new node has joined the cluster. Each node, responsive to the detection, may apply a hash function on a tuple of each session of the existing sessions in the session table of the node to determine whether one or more existing sessions are identified to be owned by the new node as a result of the hash function. Each node, responsive to identifying that one or more sessions are to be owned by the new node, may push corresponding session information to the new node. The new node may become configured to receive a packet corresponding to the one or more sessions and to process the packet.
Abstract:
Described embodiments provide systems and methods for pushing session information to a newly joined node in a cluster of nodes. In the cluster, each node may maintain a session table of existing sessions. One or more nodes may detect a new node has joined the cluster. Each node, responsive to the detection, may apply a hash function on a tuple of each session of the existing sessions in the session table of the node to determine whether one or more existing sessions are identified to be owned by the new node as a result of the hash function. Each node, responsive to identifying that one or more sessions are to be owned by the new node, may push corresponding session information to the new node. The new node may become configured to receive a packet corresponding to the one or more sessions and to process the packet.
Abstract:
The present disclosure is directed to providing FTP data connections between a client and a server via a multi-core system. Both client-side and server-side data connections are allowed to be served on a core that is the same as a core that has processed the corresponding control connection using at least one of receive side scaling (RSS) filter rules and changes in port allocation logic. In a cluster where control connection and data connection can reach different nodes based on an RSS distribution, the node which has processed the control connection is also allowed to process the corresponding data connection using at least one of RSS filter rules, service registration, changes in port allocation logic and node-to-node (N2N) messages. The systems and methods discussed herein apply to active FTP, passive FTP, and active FTP with a random port in which the server initiates data connection from a non-standard FTP port.
Abstract:
The present application is directed towards ASDR table contract renewal. In some embodiments, a core may cache an ASDR table entry received from an owner core such that when the entry is needed again the core does not need to re-request the entry from the owner core. As storing a cached copy of the entry allows the non-owner core to use an ASDR table entry without requesting the entry from the owner core, the owner core may be unaware of an ASDR table entry's use by a non-owner core. To ensure the owner core keeps the ASDR table entry alive, which the non-owner core has cached, the non-owner core may perform contract renewal for each of its recently used cached entries. The contract renewal method may include sending a message to the owner core that indicates which cached ASDR table entries the non-owner core has recently used or accessed. Responsive to receiving the message the owner core may reset a timeout period associated with the ASDR table entry.
Abstract:
Described herein is a method and system for distributing request and responses across a multi-core system. Each core executes a packet engine that further processes data packets allocated to that core. A flow distributor executing within the multi-core system forwards client requests to a packet engine on a core that is selected based on a value generated when a hash is applied to a tuple comprising a client IP address, a client port, a server IP address and a server port identified in the request. The packet engine selects a first IP address and a first port of the core, and determines whether a hash of a tuple comprising those values identifies the selected core. A modification is then made to the client request so that the client request includes a tuple comprising the first IP address, the server IP address, the first port and the server port.
Abstract:
The present disclosure is directed towards methods and systems for caching packet steering sessions for steering data packets between intermediary devices of a cluster of intermediary devices intermediary to a client and a plurality of servers. A first intermediary device receives a first data packet and determines, from a hash of a tuple of the first packet, a second intermediary device to which to steer the first packet. The first device stores, to a session for storing packet steering information, the identity of the second device and the tuple. The first device receives a second packet having a corresponding tuple that matches the tuple of the first packet and determines, based on a lookup for the session using the tuple of the second packet, that the second device is the intermediary device to which to steer the second packet. The first device steers the second packet to the second device.