IP Library Granted Patent US 8,352,633
Granted Patent B2
US 8,352,633 · App. 12/820,850 · Granted Jan 8, 2013

Systems and methods of state migration in a multi-core system

Assignee: Citrix Systems, Inc.
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 8,352,633
App. No.
12/820,850
Granted
Jan 8, 2013
Kind
B2
Abstract

The present application is directed towards systems and methods of state migration in a multi-core system. An external process on a client or server may initiate a plurality of connections with the multi-core system, such that some cores have a plurality of connections and others have none. The present invention provides systems and methods for redirecting a connection or migrating the state of a connection from being associated with a first core with a plurality of connections to a second core with no connections.

Claims (27)

1. A method for using a surplus connection of a first core as a connection to a second core in a multi-core system, the method comprising:

a) identifying, by a process, as a surplus connection to a first core of a multi-core system, a first connection of a plurality of connections established by the first core with the process;

b) sending, by the process via one of the plurality of connections and in response to determining that the process does not have a connection to a second core of the multi-core system, a request to the first core for data from the second core;

c) sending, by the first core to the second core, a message comprising information about the surplus connection;

d) establishing, by the second core, a clone of the surplus connection, the second core sending a request to the first core to create a rule to direct packets received by the first core for the surplus connection to the second core; and

e) sending, by the second core, a second message to the process indicating that the surplus connection is established on the second core.

2. The method of claim 1 , wherein step (a) further comprises sending, by the process, a plurality of requests to the multi-core system to establish a connection.

3. The method of claim 2 , further comprising distributing, by a flow distributor of the multi-core system, each of the plurality of requests to a core based on a hash of a tuple of information from the request.

4. The method of claim 2 , further comprises sending, by the process, the plurality of requests until a threshold of requests is reached.

5. The method of claim 2 , further comprises sending, by the process, the plurality of requests until a connection with each core of the multi-core system is established.

6. The method of claim 1 , wherein step (a) further comprises receiving a core identifier, by the process, from each core of the multi-core system that established one of the plurality of connections with the process.

7. The method of claim 1 , wherein step (a) further comprises receiving, by the process, a number of cores from a core of the multi-core system that established one of the plurality of connections with the process.

8. The method of claim 1 , further comprising identifying for the rule a tuple for the connection.

9. The method of claim 1 , wherein step (a) further comprises selecting the first connection from a list of surplus connections.

10. A system for using a surplus connection of a first core as a connection to a second core in a multi-core system, the system comprising:

a multi-core device comprising a first core having a plurality of connections to a device;

a process of the device identifying as a surplus connection to the first core a first connection of the plurality of connections and sending via one of the plurality of connections and in response to determining that the process does not have a connection to a second core of the multi-core system, a request to the first core for data from the second core;

wherein the first core sends to the second core a message comprising information about the surplus connection;

wherein the second core establishes a clone of the surplus connection, sends a request to the first core to create a rule to direct packets received by the first core for the surplus connection to the second core, and sends a second message to the process indicating that the surplus connection is established on the second core.

11. The system of claim 10 , wherein the process sends a plurality of requests to the multi-core system to establish a connection.

12. The system of claim 11 , wherein a flow distributor of the multi-core system distributes each of the plurality of requests to a core based on a hash of a tuple of information from the request.

13. The system of claim 11 , wherein the process sends the plurality of requests until a threshold of requests is reached.

14. The system of claim 11 , wherein the process sends the plurality of requests until a connection with each core of the multi-core system is established.

15. The system of claim 10 , wherein the process receives a core identifier from each core of the multi-core system that established one of the plurality of connections with the process.

16. The system of claim 11 , wherein the process receives a number of cores from a core of the multi-core system that established one of the plurality of connections with the process.

17. The system of claim 10 , wherein the rule identifies a tuple for the connection.

18. The system of claim 10 , wherein step (a) further comprises selecting the first connection from a list of surplus connections.

Assignments (8)
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 →
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 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 →
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 17, 2010
From: JAGADISH, ASHWIN; ANNAMALAISAMI, SARAVANA; RAJAN, ROY
To: CITRIX SYSTEMS, INC.
Reel/Frame 024848/0670 →
Continuity (2)
Provisional Application 61219250 · Jun 22, 2009
Related Publication 20100325288A1 · Dec 23, 2010