IP Library Granted Patent US 9,137,136
Granted Patent B2
US 9,137,136 · App. 13/365,496 · Granted Sep 15, 2015

Overhead management for event tracing

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,137,136
App. No.
13/365,496
Granted
Sep 15, 2015
Kind
B2
Abstract

Embodiments provide methods for managing data generated by software transactions, such as event tracing software. In one embodiment, data generated by event tracing software is monitored. The throughput of the data generated may then be modulated based on various criteria, such as a target data rate. The throughput target may be specified on a per-system basis or individual basis. Based on the throughput, the level of detail recorded is modulated. Individual processes may determine a limit or quota depending on their contribution to the throughput. In one embodiment, the method calls for a trace are modified with different property specifications to meet a desired throughput of event tracing data.

Claims (45)

1. A method of modulating an amount of a resource used by a trace process running on an application server to record transaction data, the method comprising:

receiving a target data rate, wherein the target data rate is a rate at which the transaction data is desired to be recorded by the trace process, and wherein the target data rate is specified as an amount of data per unit time;

determining, by a processor, a quota for each application process in a plurality of application processes based on the target data rate, wherein determining the quota comprises individually setting different quota rates for different application processes based on at least a type and duration of each application process; and

for each application process in the plurality of application processes,

determining, by the processor, the amount of the resource used by the trace process to record transaction data associated with the application process; and

modulating, by the processor, a level of detail written by the trace process based on the amount of the resource used by the trace process in relation to the quota associated with the application process.

2. The method of claim 1 , wherein receiving the target data rate comprises receiving a requested data rate from a user.

3. The method of claim 1 , wherein determining the quota for the application process in the plurality of application processes comprises determining the quota for a number of bytes written to a storage.

4. The method of claim 1 , wherein determining the quota for the application process in the plurality of application processes comprises determining the quota for a number of processor cycles.

5. The method of claim 1 , wherein determining the quota for the application process in the plurality of application processes comprises determining a maximum amount of storage space that may be used by the trace process.

6. The method of claim 1 , wherein modulating the trace process comprises modulating method calls traced by the trace process.

7. The method of claim 1 , wherein modulating the trace process comprises tracing method calls traced by the trace process having a minimum call duration.

8. The method of claim 1 , wherein modulating the trace process comprises tracing method calls traced by the trace process having a set of selected properties.

9. The method of claim 1 , further comprising:

running a plurality of application processes comprising the trace process; and

determining a communal data rate for the plurality of application processes based on the received target data rate,

wherein determining the quota further comprises determining a corresponding quota for each application process in the plurality of application processes based on the determined communal data rate.

10. The method of claim 9 , wherein determining the quota further comprises evenly dividing the communal data rate among the plurality of application processes.

11. An application server configured to trace a transaction serviced by the application server and modulate a resource consumed by tracing the transaction, the application server comprising:

a processor;

an application process, executed by the processor, configured to perform the transaction;

a trace process, executed by the processor, configured to record trace information related to the transaction;

a storage configured to store the trace information recorded by the trace process; and

a throughput manager, executed by the processor, configured to:

receive a requested limit for the trace process, the requested limit being a rate at which the trace information is desired to be recorded to the storage, and wherein the requested limit is specified as an amount of data per unit time,

determine a quota for the application process based on the requested limit, wherein determining the quota comprises individually setting different quota rates for different application processes based on at least a type and duration of each application process, and

modulate a level of detail written by the trace process based on the resource of the application server consumed by the trace process in relation to the quota associated with the application process.

12. The application server of claim 11 , wherein the throughput manager is configured to determine the quota for a number of bytes written by the trace process to the storage.

13. The application server of claim 11 , wherein the throughput manager is configured to determine the quota for a number processor cycles used to service the trace process.

14. The application server of claim 11 , wherein the throughput manager is configured to determine the quota for a maximum amount of storage space that may be used by the trace process.

15. The application server of claim 11 , wherein the throughput manager is configured to modulate method calls traced by the trace process.

16. The application server of claim 11 , wherein the throughput manager is configured to trace method calls having a minimum call duration.

17. The application server of claim 11 , wherein the throughput manager is configured to trace method calls having a set of selected properties.

18. A method for modulating an amount of data recorded for a transaction on an application server, the method comprising:

running a plurality of application processes, one of the plurality of application processes executing the transaction;

monitoring a data activity rate, wherein the data activity rate is a rate at which the data for the transaction is recorded, wherein the data activity rate is specified as an amount of data per unit time, and wherein said monitoring comprises:

removing a token from a token bucket each time a resource is used during a fixed period, and

adding a token to the token bucket each time a resource is not used during a fixed period;

determining, by a processor of the application server, a throughput level based on the monitored data activity rate, wherein the throughput level is associated with a minimum call duration and a set of property types, and wherein the throughput level is computed based on a number of tokens currently in the token bucket and an initial number of tokens that were present in the token bucket;

determining a quota for each application process in the plurality of application processes based on the determined throughput level, wherein determining the quota comprises individually setting different quota rates for different application processes based on at least a type and duration of each application process;

selecting, by the processor, a method call and a property based on the determined throughput level; and

recording, by the processor, the selected method call and the selected property based on the throughput level.

19. The method of claim 18 , further comprising:

increasing a level of detail of the recording based on the monitored data activity rate being less than the determined throughput level; and

decreasing the level of detail of the recording based on the monitored data activity rate being greater than the determined throughput level.

Assignments (21)
RELEASE OF SECURITY INTEREST Recorded Aug 11, 2023
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC; RIVERBED HOLDINGS, INC.
Reel/Frame 064673/0739 →
CHANGE OF NAME Recorded Feb 10, 2022
From: RIVERBED TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY LLC
Reel/Frame 059009/0906 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0108 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0046 →
SECURITY INTEREST Recorded Dec 10, 2021
From: RIVERBED TECHNOLOGY LLC (FORMERLY RIVERBED TECHNOLOGY, INC.); ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
Reel/Frame 058486/0216 →
PATENT SECURITY AGREEMENT Recorded Oct 27, 2021
From: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057943/0386 →
PATENT SECURITY AGREEMENT SUPPLEMENT - FIRST LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 057810/0502 →
PATENT SECURITY AGREEMENT SUPPLEMENT - SECOND LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 057810/0559 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORED AT REEL 056397, FRAME 0750 Recorded Oct 13, 2021
From: MACQUARIE CAPITAL FUNDING LLC
To: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 057983/0356 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2020
From: RIVERBED TECHNOLOGY, INC.
To: ATERNITY LLC
Reel/Frame 054778/0540 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY NAME PREVIOUSLY RECORDED ON REEL 035521 FRAME 0069. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST IN PATENTS. Recorded Jun 2, 2015
From: JPMORGAN CHASE BANK, N.A.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035807/0680 →
SECURITY INTEREST Recorded May 1, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035561/0363 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 28, 2015
From: BARCLAYS BANK PLC
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035521/0069 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2013
From: MALLOY, PATRICK; CROSBY, PETER ANTHONY; MEAGHER, ROBERT
To: OPNET TECHNOLOGIES, INC
Reel/Frame 030484/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2013
From: OPNET TECHNOLOGIES LLC
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 030462/0148 →
CHANGE OF NAME Recorded May 14, 2013
From: OPNET TECHNOLOGIES, INC.
To: OPNET TECHNOLOGIES LLC
Reel/Frame 030411/0273 →
SECURITY AGREEMENT Recorded Dec 20, 2012
From: RIVERBED TECHNOLOGY, INC.; OPNET TECHNOLOGIES, INC.
To: MORGAN STANLEY & CO. LLC
Reel/Frame 029646/0060 →