Asynchronous Transaction Critical Path Identification Agent

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Determining the duration of asynchronous transactions in web applications is challenging due to unclear relationships between processing steps, making it difficult to identify slowing components and improve performance.

Innovation Solution

An agent on the web server monitors transactions by injecting code to collect metrics on method relationships and execution times, identifying critical paths that affect transaction duration and reporting them for user display.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If web servers execute transactions asynchronously to increase response speed, then productivity is improved, but difficulty of detecting and measuring transaction duration worsens

Engineering Contradiction:
Improveresponse speedVSAvoidtransaction duration measurement
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces an agent as an intermediary component that runs on the web server and collects metrics about asynchronous transaction methods. The agent receives metrics including identifiers of executed methods and relationships between methods, then processes this information to identify critical paths. This intermediary solves the measurement difficulty by providing a dedicated monitoring mechanism that tracks asynchronous operations without disrupting their execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback by having the agent send identifiers of critical path methods back to users for display. This feedback loop allows developers to see which methods are impacting transaction duration, enabling them to make informed optimizations. The feedback mechanism transforms the complex asynchronous execution data into actionable insights about performance bottlenecks.

Inventive Principle:
Principle #23Feedback

2Measurement precision

If developers need detailed information about each processing step to improve performance, then measurement precision is improved, but device complexity increases

Engineering Contradiction:
Improveprocessing step durationVSAvoidmonitoring system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts only the essential information needed for performance analysis by having the agent collect specific metrics about method relationships and execution, then identify and report only the critical path methods. This extraction approach provides detailed measurement precision for the most important processing steps without requiring the system to track and report every single operation, thus managing complexity by focusing on what matters most for performance optimization.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11200086B1Asynchronous transactions reported as critical path
Publication Date: 2021.12.14 NEW RELIC INC
  • US11200086B1 patent drawing
  • US11200086B1 patent drawing
  • US11200086B1 patent drawing

AI summary

An agent executed by a computer identifies a critical path of a transaction in a web application. The transaction includes a plurality of methods each representing an operation of the application and asynchronously executed by a server between a beginning of the transaction and an end of the transaction. The agent receives metrics for the transaction, which include identifiers of each executed method and specify relationships between the transaction methods. Based on the received metrics, the agent identifies a method completed at the end of the transaction. Based on the relationships between the methods, the agent determines one or more other methods preceding the identified method in the transaction and affecting a duration of the transaction. The determined methods and the method completed at the end of the transaction are identified as a critical path. Identifiers of the methods on the critical path are sent for display to a user.