IP Library Granted Patent US 11,089,113
Granted Patent B2
US 11,089,113 · App. 15/670,749 · Granted Aug 10, 2021

Systems and methods to retain existing connections so that there is no connection loss when nodes are added to a cluster for capacity or when a node is taken out from the cluster for maintenance

Inventors: Sandhya Gopinath (Bangalore, IN); Sathaiah Dontula (Bangalore, IN); Ranjith Nath (Bangalore, IN)
Assignee: Citrix Systems, Inc.
H04L67/142H04L41/0806H04L67/1046H04L43/028H04L45/7453H04L67/10H04L67/1008H04L67/1023H04L69/40
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,089,113
App. No.
15/670,749
Granted
Aug 10, 2021
Kind
B2
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.

Claims (28)

1. A system for pushing session information to a newly joined node in a cluster of nodes, comprising:

a cluster of nodes intermediary to a plurality of clients and a plurality of servers, each node of the cluster of nodes maintaining a session table of a plurality of existing sessions between the plurality of clients and the plurality of servers;

one or more nodes in the cluster of nodes configured to detect a new node has joined the cluster of nodes;

each node in the cluster of nodes, responsive to the detection, configured to apply a hash function on a tuple of each session of the plurality of existing sessions in the session table of that node to determine whether one or more existing sessions of the plurality of existing sessions are identified to be owned by the new node as a result of the hash function;

wherein each node in the cluster of nodes, responsive to identifying that one or more sessions are to be owned by the new node, push session information corresponding to the one or more sessions to the new node; and

wherein the new node is configured to receive a first packet corresponding to the one or more sessions and to process the packet, and is configured to receive a second packet corresponding to a session other than the one or more sessions and to forward the second packet to another node in the cluster of nodes for processing.

2. The system of claim 1 , wherein the tuple comprises a 4-tuple of a source internet protocol address, source port, destination internet protocol address and a destination port of one or more packets of the session.

3. The system of claim 1 , wherein the one or more nodes in the cluster of nodes are further configured to detect the new node based on one or more heartbeat packets communicated by the new node.

4. The system of claim 1 , wherein the one or more nodes in the cluster of nodes are further configured to establish an operational view of the cluster of nodes comprising a set of active nodes that process network traffic between the plurality of clients and the plurality of servers.

5. The system of claim 4 , wherein the operational view is changed responsive to the new node joining the cluster of nodes.

6. The system of claim 1 , wherein each node in the cluster of nodes, responsive to identifying that one or more sessions are to be owned by the new node, push to the new node session information of existing sessions of each node.

7. The system of claim 1 , wherein each node in the cluster of nodes informs the new node that each node has completed pushing session information to the new node.

8. The system of claim 1 , wherein each node in the cluster of nodes, responsive to the detection, are further configured to apply the hash function using a receive side scaling (RSS) key.

9. The system of claim 1 , wherein the new node updates the session table of the new node with session information received from each node of the cluster of nodes.

10. A system for identifying by a newly joined node in a cluster of nodes a node to process a packet for a session, comprising:

a cluster of nodes intermediary to a plurality of clients and a plurality of servers, each node of the cluster of nodes maintaining a session table of a plurality of existing sessions between the plurality of clients and the plurality of servers;

a new node configured to join the cluster of nodes and to receive a packet for a session of the plurality of existing sessions, the new node configured to create session information using a tuple of the packet and to queue the packet for this session;

wherein the new node is configured to send a message with the session information to each next node in an enumerated list of nodes of the cluster of nodes until a next node communicates to the new node a reply identifying that a session corresponding to the session information exists on the next node; and

wherein responsive to the reply, the new node updates the session table identifying the next node as the owner of the session and forwarding the packet to the next node.

11. The system of claim 10 , wherein the new node is further configured to queue additional packets for the session in a queue until the next node is identified.

12. The system of claim 10 , wherein the tuple comprises a 4-tuple of a source internet protocol address, source port, destination internet protocol address and a destination port of the packet.

13. The system of claim 10 , wherein the new node is further configured to send the message with the session information comprising the tuple of the packet.

14. The system of claim 10 , wherein the enumerated list of next nodes comprises a random list of nodes in the cluster of nodes.

15. The system of claim 10 , wherein the next node comprises a first node of the cluster of nodes that responds to the message from new node with a first reply identifying that the session does not exist on the first node.

16. The system of claim 10 , wherein the new node is further configured to create, responsive to the packet, the session in the session table identifying a target node for the session as invalid.

17. The system of claim 10 , wherein the new node is further configured to update, responsive to the reply, the session in the session table identifying the next node as a target node for the session.

18. The system of claim 10 , wherein the new node is further configured to forward the packet to the next node.

19. The system of claim 10 , wherein the new node is further configured to forward any queued packets to the next node.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: GOPINATH, SANDHYA; DONTULA, SATHAIAH; NATH, RANJITH
To: CITRIX SYSTEMS, INC.
Reel/Frame 043226/0280 →
Continuity (1)
Related Publication 20190045015A1 · Feb 7, 2019