IP Library Granted Patent US 8,843,620
Granted Patent B2
US 8,843,620 · App. 13/218,504 · Granted Sep 23, 2014

Monitoring connections

Inventors: Declan Sean Conlon (Sydney, AU); Euan David Harris (Cambridge, GB)
Assignee: Riverbed Technology, Inc.
H04L63/1458H04L41/5009H04L41/069H04L43/0823H04L43/04H04L63/1416H04L63/30H04L67/2819H04L67/2842H04L67/1002
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,843,620
App. No.
13/218,504
Granted
Sep 23, 2014
Kind
B2
Abstract

Apparatus for processing requests from a plurality of connected clients for data stored by a plurality of connected servers comprising a processor, memory, storage, a network interface, and a user input device is disclosed. The processor is configured to receive requests from the connected clients via the network interface, select a connected server to route each requests to, thereby defining a selected server per request, create a connection per request to its selected server using the network interface, route the requests to their selected servers using the connections, and monitor the connections while the selected servers service the requests, so as to create monitored connection data for each connection. The monitored connection data is stored in data structures that are referenced by a buffer, and upon creation of a data structure relating to the most recently created connection, reference to the oldest data structure in the buffer is removed.

Claims (57)

1. An apparatus for processing requests from a plurality of connected clients for data stored by a plurality of connected servers, comprising a processor, memory, storage, and a network interface, wherein said processor is configured to:

receive requests from the connected clients via said network interface,

select a connected server to route each of said requests to, thereby defining a selected server per request,

create a connection per request to its selected server using said network interface,

route each of said requests to their selected servers using said connections,

monitor said connections whilst the selected servers service said requests, so as to create monitored connection data for each connection; and

create and store in said memory a plurality of data structures, wherein each of said data structures contains monitored connection data relating to each connection;

create and store in said memory a buffer containing references to a finite number of said data structures, wherein each reference in the buffer points to a memory location in said memory where the said data structures are stored, and wherein upon creation of a data structure relating to the most recently created connection, reference to the oldest data structure in said buffer is removed.

2. An apparatus according to claim 1 , further comprising a user input device, and wherein said processor is further configured to:

receive an instruction from said user input device to create a snapshot;

create in said memory a snapshot of said buffer at that moment; and

mark the referenced data structures in said snapshot as locked, thereby creating locked data structures.

3. An apparatus according to claim 2 , wherein said processor is further configured to copy said snapshot and said locked data structures to said storage, thereby creating an archived snapshot and archived data structures.

4. An apparatus according to claim 2 , wherein said processor is further configured to:

receive an instruction to retrieve a stored data structure referred to by either said buffer or a snapshot;

extract the monitored connection data contained in said stored data structure; and

recreate the request and the connection defined by said monitored connection data.

5. An apparatus according to claim 1 , wherein said monitored connection data comprises error information relating to each connection that encountered an error.

6. An apparatus according to claim 5 , wherein said processor is further configured to:

receive a query from a user via said input device, said query containing query terms;

query said referenced data structures for monitored connection data matching said query terms.

7. An apparatus according to claim 1 , wherein said processor comprises a plurality of compute units for executing instructions, and runs a plurality of processes configured to process said requests substantially simultaneously.

8. An apparatus according to claim 7 , wherein each of said plurality of processes comprises a virtual server for creating and monitoring said connections to said connected servers.

9. An apparatus according to claim 1 , wherein said monitored connection data comprises data that was returned in response by a connected server to each request.

10. An apparatus according to claim 1 , wherein said processor is further configured to make a decision as to which of said connected servers to create a connection to by performing a load balancing algorithm.

11. A method of processing requests from a plurality of connected clients for data stored by a plurality of connected servers, comprising the steps of:

receiving requests from connected clients;

creating a connection to one of the connected servers for each of said requests;

routing said requests to the connected servers using said connections;

monitoring said connections whilst the connected servers service said requests, so as to create monitored connection data for each monitored connection;

creating and storing a plurality of data structures, wherein each of said data structures contains monitored connection data relating to each monitored connection; and

creating and storing a buffer containing references to a finite number of said data structures, wherein each reference in the buffer points to a memory location in said memory where the said data structures are stored, and wherein upon creation of a data structure relating to the most recently created connection, reference to the oldest data structure in said buffer is removed.

12. A method according to claim 11 , further comprising the steps of:

receiving an instruction to create a snapshot;

creating a snapshot of said buffer at that moment; and

marking the referenced data structures in said snapshot as locked, so as to create locked data structures.

13. A method according to claim 12 , wherein said snapshot and said locked data structures are copied to a storage device, thereby creating an archived snapshot and archived data structures.

14. A method according to claim 11 , wherein said monitored connection data comprises a length of time for which each connection was alive.

15. A method according to claim 14 , further comprising the steps of:

receiving a query from a user, said query containing query terms;

querying said referenced data structures for monitored connection data matching said query terms.

16. A non-transitory computer-readable medium encoded with program instructions executable by a computer that, when executed by a computer, cause said computer to process requests from a plurality of connected clients for data stored by a plurality of connected servers, by performing steps of:

receiving requests from said connected clients;

creating a connection to one of said connected servers per request;

routing said requests to said connected servers using said connections;

monitoring said connections whilst said connected servers service said requests, so as to create monitored connection data for each monitored connection;

creating and storing a plurality of data structures, wherein each of said data structures contains monitored connection data relating to each monitored connection; and

creating and storing a buffer containing references to a finite number of said data structures, wherein each reference in the buffer points to a memory location in said memory where the said data structures are stored, and wherein upon creation of a data structure relating to the most recently created connection, reference to the oldest data structure in said buffer is removed.

17. A non-transitory computer-readable medium according to claim 16 , further encoded with program instructions that, when executed by a computer, cause said computer to perform additional steps of:

receiving an instruction to create a snapshot;

creating a snapshot of said buffer at that moment; and

marking the referenced data structures in said snapshot as locked, so as to create locked data structures.

18. A non-transitory computer-readable medium according to claim 17 , wherein said snapshot and said locked data structures are copied to a storage device, thereby creating an archived snapshot and archived data structures.

19. A non-transitory computer-readable medium according to claim 16 , wherein said monitored connection data comprises a size of each of the said requests.

20. A non-transitory computer-readable medium according to claim 19 , further encoded with program instructions that, when executed by a computer, cause said computer to perform additional steps of:

receiving a query from a user, said query containing query terms;

querying said referenced data structures for monitored connection data matching said query terms.

Assignments (17)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY 14633493 WHICH WAS ENTERED INCORRECTLY AS 14633793 PREVIOUSLY RECORDED ON REEL 71176 FRAME 315. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN NEWCO SECURITY AGREEMENT. Recorded Nov 10, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 073818/0515 →
FIRST LIEN NEWCO SECURITY AGREEMENT Recorded May 5, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0315 →
SECURITY INTEREST Recorded May 3, 2025
From: PULSE SECURE LLC
To: ALTER DOMUS (US) LLC
Reel/Frame 071165/0027 →
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 053638-0220 Recorded Dec 1, 2020
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: PULSE SECURE, LLC
Reel/Frame 054559/0368 →
SECURITY INTEREST Recorded Aug 29, 2020
From: PULSE SECURE, LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 053638/0220 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2017
From: BROCADE COMMUNICATION SYSTEMS, INC.
To: PULSE SECURE, LLC
Reel/Frame 043604/0172 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 035561/0363 Recorded Jan 9, 2017
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 041298/0876 →
SECURITY INTEREST Recorded May 1, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035561/0363 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2015
From: RIVERBED TECHNOLOGY, INC.
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 035097/0776 →
RELEASE OF SECURITY INTEREST Recorded Mar 3, 2015
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035078/0354 →
PATENT SECURITY AGREEMENT Recorded Dec 27, 2013
From: RIVERBED TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032421/0162 →
RELEASE OF PATENT SECURITY INTEREST Recorded Dec 26, 2013
From: MORGAN STANLEY & CO. LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 032113/0425 →
SECURITY AGREEMENT Recorded Dec 20, 2012
From: RIVERBED TECHNOLOGY, INC.; OPNET TECHNOLOGIES, INC.
To: MORGAN STANLEY & CO. LLC
Reel/Frame 029646/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2012
From: CONLON, DECLAN SEAN; HARRIS, EUAN DAVID
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 027693/0388 →
Priority Claims (1)
GB 1014367.5 · Aug 27, 2010 · national
Continuity (1)
Related Publication 20120144026A1 · Jun 7, 2012