Tree Data Structure for Transaction Trace Monitoring
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing monitoring software systems face challenges in efficiently communicating transaction trace data, particularly when transaction elements cannot be identified during execution due to inaccessible information, leading to data corruption and decreased transparency.
Innovation Solution
A tree data structure is maintained by agents and managers to represent transactions as sequences of transaction elements, with provisional branches used for unidentifiable elements, allowing for efficient data storage and reporting once the elements are identified, and synchronization of tree data structures across agents.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If transaction elements are tracked during execution, then transparency is improved, but data corruption occurs when information is inaccessible
Solution Approach 1:
The system performs preliminary actions by creating provisional branches in advance when transaction elements cannot be identified during execution. Instead of waiting for information to become available, the system proactively creates placeholder branches that can be populated later, preventing data loss while maintaining execution continuity and avoiding corruption.
Solution Approach 2:
Provisional branches act as intermediaries between the transaction execution process and the final transaction elements. When information is inaccessible during execution, these provisional branches serve as temporary storage that bridges the gap, allowing the system to maintain transparency without compromising data integrity until the actual transaction elements are identified.
2Loss of information
If detailed transaction tracing is performed, then transparency is improved, but system overhead increases
Solution Approach 1:
The transaction tracing system is segmented into provisional branches that are created only when necessary (when transaction elements cannot be identified). This segmentation allows the system to maintain detailed transaction visibility for critical paths while avoiding unnecessary overhead for transactions that can be fully identified during execution, optimizing the balance between transparency and computational cost.
3Productivity
If transaction data is reported immediately, then productivity is improved, but data accuracy decreases when elements are unidentifiable
Solution Approach 1:
The system performs preliminary creation of provisional branches before transaction elements are fully identified. This allows reporting to proceed without waiting for complete information, improving productivity, while the provisional structure ensures that accuracy is maintained by allowing updates when transaction elements become identifiable later.
Data Source
AI summary
A technique for monitoring software which efficiently communicates transaction trace data, including static and dynamic data, from an agent to a manager is disclosed. A tree data structure describes transactions as a sequence of transaction elements. Each branch may correspond to one type of transaction. The nodes along a branch may be associated with components of monitored software that are invoked to perform the transaction. A provisional branch may be constructed when an agent is unable to initially identify the transaction. Transaction data may be stored in association with the nodes in the provisional branch during the monitoring. After information needed to identify the transaction becomes available to the agent, the provisional branch is updated. The transaction data is reported in response to determining the branch in the tree data structure that matches the provisional branch.


