IP Library Granted Patent US 8,635,363
Granted Patent B2
US 8,635,363 · App. 12/823,890 · Granted Jan 21, 2014

System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side network connections

Inventors: Jose K. Raphel (San Jose, CA); Kailash Kailash (San Jose, CA); Michel K. Susai (San Jose, CA)
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,635,363
App. No.
12/823,890
Granted
Jan 21, 2014
Kind
B2
Abstract

A method for maximizing server throughput while avoiding overload of a server is presented. The method involves intercepting, via an interface unit, a client request for information from the server. Next, the interface unit determines the current server performance, where the server performance is based on the number of connections opened to the server, the response time of the server and the rate at which the response time is changing. Finally, the interface unit forwards the client request to the server if the current server performance is close to an optimal performance, whereby avoiding overload of the server.

Claims (26)

1. A method for improving performance of a server by device intermediary to a plurality of clients and the server, the method comprising:

(a) monitoring, by a device intermediary to a plurality of a clients and a server, a mix of requests from existing clients and new clients pending at the server;

(b) determining, by the device based on the monitoring of the mix of requests, a first predetermined percentage of processing resources of the server to spend servicing existing clients for the server to perform within a predetermined performance range; and

(c) regulating, by the device, a rate at which requests received by the device from existing clients are delivered to the server to maintain performance of the server within the predetermined performance range.

2. The method of claim 1 , wherein step (a) further comprises monitoring, by the device, the mix of requests at a point in time.

3. The method of claim 1 , wherein step (b) further comprises determining, by the device responsive to monitoring, for the server to perform within the predetermined performance range, a second predetermined percentage of processing resources of the server to accept new clients.

4. The method of claim 1 , wherein step (c) further comprises regulating, by the device, the rate at which requests received by new clients are delivered to the server to maintain performance of the server within the predetermined performance range.

5. The method of claim 1 , wherein step (c) further comprises receiving, by the device, a connection request to the server from a new client.

6. The method of claim 5 , further comprising determining, by the device, whether the server would maintain performance within the predetermined performance range if the client is allowed to make a connection.

7. The method of claim 6 , further comprising determining, by the device, that the server's response time would not increase to an unacceptable level and forwarding the connection request to the server.

8. The method of claim 6 , further comprising determining, by the device, that the server's response time would increase to an unacceptable level and buffering by the device the connection request.

9. The method of claim 1 , wherein step (c) further comprising determining a number of requests queued at the server and comparing the number of requests with a maximum capacity of the server's queue.

10. The method of claim 1 , wherein step (c) further comprising determining an amount of time requests have been pending at the server.

11. A system for improving performance of a server, the system comprising:

a device intermediary to a plurality of a clients and a server comprising a processor configured for monitoring a mix of requests from existing clients and new clients pending at the server;

a controller of the device, determining, based on the monitoring of the mix of requests, a first predetermined percentage of processing resources of the server to spend servicing existing clients for the server to perform within a predetermined performance range; and

wherein the device regulates a rate at which requests received by the device from existing clients are delivered to the server to maintain performance of the server within the predetermined performance range.

12. The system of claim 11 , wherein the device monitors the mix of requests at a point in time.

13. The system of claim 11 , wherein the device determines, responsive to monitoring, for the server to perform within the predetermined performance range, a second predetermined percentage of processing resources of the server to accept new clients.

14. The system of claim 11 , wherein the device regulates the rate at which requests received by new clients are delivered to the server to maintain performance of the server within the predetermined performance range.

15. The system of claim 11 , wherein a communication interface of the device receives a connection request to the server from a new client.

16. The system of claim 15 , wherein the device determines whether the server would maintain performance within the predetermined performance range if the client is allowed to make a connection.

17. The system of claim 16 , wherein the device determines that the server's response time would not increase to an unacceptable level and forwards the connection request to the server.

18. The system of claim 16 , wherein the controller determines that the server's response time would increase to an unacceptable level and buffers the connection request.

19. The system of claim 11 , wherein the device regulates by determining a number of requests queued at the server and comparing the number of requests with a maximum capacity of the server's queue.

20. The system of claim 11 , wherein the device regulates by determining an amount of time requests have been pending at the server.

Assignments (8)
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 →
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 →
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 →
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 16, 2012
From: RAPHAEL, JOSE KOLENCHERIL; KAILASH, KAILASH; SUSAI, MICHEL K.
To: NETSCALER, INC.
Reel/Frame 027877/0068 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 15, 2011
From: NETSCALER, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 027392/0195 →
Continuity (2)
Continuation 09912401 · Jul 26, 2001
Related Publication 20100262655A1 · Oct 14, 2010