Tracking Asynchronous Entry Points via Context Objects
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Monitoring transactions involving separate asynchronous threads is challenging due to their lack of linkage, making it difficult to track the start and end of these threads as a single process.
Innovation Solution
A context object is used to determine the end segment for the start segment, and a call element is inserted into the call graph to tie the call graphs of the first and second segments together, allowing for the merging of call data from both threads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If asynchronous threads are used to handle transactions, then processing speed and scalability are improved, but the ability to track and monitor transactions as a single process deteriorates
Solution Approach 1:
The patent introduces a correlation object as an intermediary mechanism that captures and maintains references to asynchronous threads. This correlation object acts as a mediator between the thread execution context and the monitoring system, enabling transaction tracking across asynchronous boundaries without interfering with the actual thread execution speed or scalability benefits.
Solution Approach 2:
The patent implements feedback mechanisms through correlation objects that track thread execution states and provide monitoring information back to the system. By capturing thread references and execution context in correlation objects, the system can feedback about transaction progress and status across asynchronous threads, resolving the monitoring difficulty while maintaining high processing speed.
2Adaptability or versatility
If threads are separated into independent segments, then system flexibility and adaptability are improved, but the complexity of monitoring and linking segments deteriorates
Solution Approach 1:
The correlation object serves as an intermediary that simplifies the monitoring of independent thread segments. By capturing thread references and execution context in these correlation objects, the system can maintain flexibility in thread separation while reducing monitoring complexity through a standardized tracking mechanism.
Solution Approach 2:
The patent creates a universal monitoring framework where correlation objects can track various types of asynchronous operations across different thread segments. This multi-functional approach allows the system to maintain system flexibility for diverse transaction patterns while using a single unified monitoring mechanism, thereby reducing overall complexity.
3Measurement precision
If call graphs from different threads are merged, then transaction monitoring accuracy is improved, but the complexity of data processing and merging deteriorates
Solution Approach 1:
The correlation object acts as an intermediary that organizes and structures call graph data from different threads before merging. By capturing and maintaining thread references and execution context in correlation objects, the system can accurately merge call graphs while using the correlation object as an organizing structure that manages the complexity of the merging process.
Solution Approach 2:
The patent segments the call graph data collection process by capturing data from individual threads through correlation objects, then merging these segmented data structures. This segmentation approach allows for accurate transaction monitoring by maintaining distinct thread contexts while simplifying the merging operation through structured data organization.
Data Source
AI summary
Asynchronous operations associated with a request such as synchronous threads, runnable elements, callable elements, and other invokable objects are tracked to determine the metrics about the request and operations. The present technology tracks the start and end of each asynchronous operation and maintains a counter which tracks the currently executing asynchronous operations. By monitoring the request, the start and end of each asynchronous operation associated with the request, and the number of asynchronous operations currently executing, the present technology may identify the end of a request by identifying when the last asynchronous operation associated with the request ends. In some instances, the present technology identifies the end of a request when a counter which tracks the number of asynchronous operations executing reaches a value of zero after the first asynchronous operation has already begun.


