IP Library Granted Patent US 10,846,136
Granted Patent B2
US 10,846,136 · App. 14/813,567 · Granted Nov 24, 2020

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

Inventors: Manikam Muthiah (Bangalore, IN); Josephine Suganthi (Sunnyvale, CA); Sandeep Kamath (Santa Clara, CA)
Assignee: Citrix Systems, Inc.
G06F9/5011H04L47/19H04L67/1002H04L67/1025G06F2209/504G06F2209/5011Y02D10/22
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 10,846,136
App. No.
14/813,567
Filed
Jul 30, 2015
Granted
Nov 24, 2020
Kind
B2
Art Unit
2195
USPC
718/104
Abstract

Disclosed embodiments describe 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 spillover limit of a resource. and 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 of a resource. The device determines that the number of resources used by a 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 received by the device for the virtual server.

Claims (30)

1. A method comprising:

a) assigning, by a device intermediary to a client and a server, to each processor of a plurality of processors of a device, a predetermined number of times a resource can be used by each processor based on applying a function to a limit received via user input established for the device, the limit comprising a total number of times the resource can be used across the plurality of processors of the device, wherein the predetermined number of times of uses includes a number of times of use from an exclusive quota pool and a number of times of use from a non-exclusive quota pool;

b) determining, by the device responsive to a first processor of the device receiving a request from the client to a service on the server that uses the resource, that the number of times the resource is used by the first processor has reached the predetermined number of times of use assigned to the first processor from the exclusive quota pool and the non-exclusive pool has been exhausted;

c) allocating, by the device responsive to the determination, an additional number of times of use of the resource to the first processor from the total number of times the resource can be used by another processor of the plurality of processors using less than its predetermined number of times assigned from the exclusive quota pool; and

d) processing, by the first processor, the request from the client responsive to allocation of the additional number of times of use of the resource to the first processor.

2. The method of claim 1 , wherein (a) further comprises assigning to each processor the predetermined number of times the resource can be used by each processor, wherein the predetermined number of times comprises a result of applying the function to the limit received via user input.

3. The method of claim 1 , wherein (a) further comprises allocating, by the device, the predetermined number of times of uses as exclusive uses from an exclusive quota pool.

4. The method of claim 1 , wherein (a) further comprises allocating, by the device, the predetermined number of times of uses as non-exclusive uses from a non-exclusive quota pool.

5. The method of claim 1 , wherein (b) further comprises determining, by the first processor, that the first processor has reached the predetermined number of times prior to use of the resource by the request.

6. The method of claim 1 , wherein (c) further comprises requesting, by the first processor, the additional number of times of use from a pool manager.

7. The method of claim 1 , wherein (c) further comprises allocating, by the device, the additional number of times to use of the resource as non-exclusive uses from a non-exclusive quota pool.

8. The method of claim 1 , wherein (c) further comprises allocating, by the device, the additional number of times to uses of the resource as exclusive uses from an exclusive quota pool.

9. The method of claim 1 , wherein (c) further comprising receiving, by the first processor, the additional number of times of use previously allocated to a second processor.

10. The method of claim 1 , wherein the resource comprises one of the following a connection, bandwidth or bytes per unit of time processed by the first processor.

11. A system comprising:

a device comprising a plurality of processors and intermediary to a client and a server;

a pool manager configured to execute on one or more processors of the plurality of processors and configured to assign to each processor of the plurality of processors, a predetermined number of times a resource can be used by each processor based on applying a function to a limit received via user input established for the device the limit comprising a total number of times the resource can be used across the plurality of processors of the device;

wherein the predetermined number of times of uses includes a number of times of use from an exclusive quota pool and a number of times of use from a non-exclusive quota pool;

wherein the device is configured to determine, responsive to a first processor of the device receiving a request from the client to a service on the server that uses the resource, that the number of times the resource is used by the first processor has reached the predetermined number of times assigned to the first processor from the exclusive quota pool and the non-exclusive pool has been exhausted; and

wherein responsive to the determination, the pool manager is configured to assign an additional number of times of use of the resource to the first processor from the total number of times the resource can be used by another processor of the plurality of processors using less than its predetermined number of times assigned from the exclusive quota pool; and

responsive to allocation of the additional number of times of use of the resource to the first processor, the first processor is configured to process the request from the client.

12. The system of claim 11 , wherein the device is further configured to assign to each processor the predetermined number of times the resource can be used by each processor, wherein the predetermined number of times comprises a result of applying the function to the limit received via user input based on applying a function to the limit received via user input.

13. The system of claim 11 , wherein the device is further configured to allocate the predetermined number of times of uses as exclusive uses from an exclusive quota pool.

14. The system of claim 11 , wherein the device is further configured to allocate the predetermined number of times of uses as non-exclusive uses from a non-exclusive quota pool.

15. The system of claim 11 , wherein the device is further configured to determine that the first processor has reached the predetermined number of times prior to use of the resource by the request.

16. The system of claim 11 , wherein the device is further configured to request the additional number of times of use from a pool manager.

17. The system of claim 11 , wherein the device is further configured to allocate the additional number of times to use of the resource as non-exclusive uses from a non-exclusive quota pool.

18. The system of claim 11 , wherein the device is further configured to allocate the additional number of times to uses of the resource as exclusive uses from an exclusive quota pool.

19. The system of claim 11 , wherein the first processor is further configured to request additional number of times of use previously allocated to a second processor.

20. The system of claim 11 , wherein the resource comprises one of the following a connection, bandwidth or bytes per unit of time processed by the first processor.

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 Jul 30, 2015
From: MUTHIAH, MANIKAM; SUGANTHI, JOSEPHINE; KAMATH, SANDEEP
To: CITRIX SYSTEMS, INC.
Reel/Frame 036217/0408 →
Continuity (3)
Continuation 12976697 · Dec 22, 2010
Provisional Application 61289536 · Dec 23, 2009
Related Publication 20150339164A1 · Nov 26, 2015
Cited By (3)
US 12,197,529 US 12,265,640 US 12,348,378