IP Library Granted Patent US 9,098,335
Granted Patent B2
US 9,098,335 · App. 12/976,697 · Granted Aug 4, 2015

Systems and methods for managing spillover limits in a multi-core system

Inventors: Manikam Muthiah (Karnataka, IN); Josephine Suganthi (Sunnyvale, CA); Sandeep Kamath (Santa Clara, CA)
Assignee: CITRIX SYSTEMS, INC.
G06F9/5011H04L47/19H04L67/1002H04L67/1025G06F2209/504G06F2209/5011Y02B60/142
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 9,098,335
App. No.
12/976,697
Granted
Aug 4, 2015
Kind
B2
Abstract

The present disclosure is directed to a system for managing spillover via a plurality of cores of a multi-core device intermediary to a plurality of clients and one or more services. The system may include a device intermediary to a plurality of clients and one or more services. The system may include a spillover limit of a resource. The device may also include a plurality of packet engines operating on a corresponding core of a plurality of cores of the device. The system may include a pool manager allocating to each of the plurality of packet engines a number of resource uses from an exclusive quota pool and shared quota pool based on the spillover limit. The device may also include a virtual server of a packet engine of the plurality of packet engines. The virtual server manages client requests to one or more services. The device determines that the number of resources used by a packet engine of the plurality of packet engine has reached the allocated number of resource uses of the packet engine, and responsive to the determination, forwards to a backup virtual server a request of a client of the plurality of clients received by the device for the virtual server.

Claims (28)

1. A method of managing spillover via a plurality of cores of a multi-core device intermediary to a plurality of clients and one or more services, the method comprising:

a) identifying, for a device intermediary to a plurality of clients and one or more services, a spillover limit of a resource, the device comprising a plurality of virtual servers operating on a corresponding core of a plurality of cores of the device;

b) allocating, by a pool manager of the device, to each of the plurality of virtual servers, a number of uses of a resource from an exclusive quota pool and shared quota pool based on the spillover limit, the number of uses of the resources comprising a number of times the resource can be used;

c) determining, by the device, that the number of times the resource is used by a virtual server of the plurality of virtual servers has reached the allocated number of uses of the resource of the virtual server; and

d) forwarding, by the device responsive to the determination, to a backup virtual server a request of a client of the plurality of clients received by the device for the virtual server.

2. The method of claim 1 , wherein step (a) further comprises identifying for the device the spillover limit as a maximum number of connections to a service of the one or more services.

3. The method of claim 1 , wherein step (a) further comprises identifying for the device the spillover limit as a dynamic connection threshold, the dynamic connection threshold comprising a sum of a number of connections of each of the plurality of virtual servers.

4. The method of claim 1 , wherein step (b) further comprises allocating, by the pool manager, the number of uses of the resource comprising a number of exclusive uses from the exclusive quota pool and a number of non-exclusive uses from the shared quota pool.

5. The method of claim 1 , wherein step (c) further comprises requesting, by the virtual server, a resource use from the pool manager upon reaching the virtual server's allocation of uses of the resource.

6. The method of claim 1 , wherein step (c) further comprises determining, by the device, that the number of uses of the resource available from the pool manager for the virtual server has been exhausted.

7. The method of claim 1 , further comprising changing the spillover limit to a lower number of resource uses and responsive to the change, one or more of the plurality of virtual servers returning a portion of the allocated number of uses of the resource to the pool manager.

8. The method of claim 1 , further comprising changing the spillover limit to a higher number of uses of the resource and responsive to the change, one or more the plurality of virtual servers requesting from the pool manager an additional the number of uses of the resource.

9. The method of claim 1 , further comprising designating a first core of the plurality of cores as spillover master for monitoring the service and changing the spillover limit based on monitoring.

10. A system for managing spillover via a plurality of cores of a multi-core device intermediary to a plurality of clients and one or more services, the system comprising:

a device intermediary to a plurality of clients and one or more services, the device comprising:

a spillover limit of a resource;

a plurality of packet engines operating on a corresponding core of a plurality of cores of the device;

a pool manager allocating to each of the plurality of packet engines a number of uses of a resource from an exclusive quota pool and shared quota pool based on the spillover limit, the number of uses of the resources comprising a number of times the resource can be used; and

a virtual server of a packet engine of the plurality of packet engines, the virtual server managing client requests to one or more services;

wherein the device determines that the number of time the resource is used by a packet engine of the plurality of packet engine has reached the allocated number of uses of the resource of the packet engine, and responsive to the determination, forwards to a backup virtual server a request of a client of the plurality of clients received by the device for the virtual server.

11. The system of claim 10 , wherein the device identifies the spillover limit as a maximum number of connections to a service of the one or more services.

12. The system of claim 10 , wherein the device identifies the spillover limit as a dynamic connection threshold, the dynamic connection threshold comprising a sum of a number of connections of each of the plurality of virtual servers.

13. The system of claim 10 , wherein the pool manager allocates the number of uses of the resource comprising a number of exclusive uses from the exclusive quota pool and a number of non-exclusive uses from the shared quota pool.

14. The system of claim 10 , wherein the packet engine requests a resource use from the pool manager upon reaching the packet engine's allocation of the number of uses of the resource.

15. The system of claim 10 , wherein the device determines that the number of uses of the resource available from the pool manager has been exhausted.

16. The system of claim 10 , wherein the device changes the spillover limit to a lower number of uses of the resource and responsive to the change, one or more of the plurality of packet engines returning a portion of the allocated number of uses of the resource to the pool manager.

17. The system of claim 10 , wherein the device changes the spillover limit to a higher number of uses of the resource and responsive to the change, one or more the plurality of packet engines requesting from the pool manager an additional the number of resource uses.

18. The system of claim 10 , wherein the device designates a first packet engine of the plurality of packet engines as spillover master for monitoring the service and changing the spillover limit based on monitoring.

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 →
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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
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 →
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 Mar 15, 2011
From: MUTHIAH, MANIKAM; SUGANTHI, JOSEPHINE; KAMATH, SANDEEP
To: CITRIX SYSTEMS, INC.
Reel/Frame 025960/0010 →
Continuity (2)
Provisional Application 61289536 · Dec 23, 2009
Related Publication 20110149737A1 · Jun 23, 2011