Distributed Transaction Tracing via Thread-Local Correlation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional performance monitoring and tracing tools struggle to track distributed transactions across thread, process, and server boundaries, often requiring synchronized clocks, leading to incomplete or inaccurate correlation of transaction sequences and high memory overhead, especially in recursive method calls.
Innovation Solution
A system that uses entry and exit sensors to store and retrieve correlation information in thread-local storage, allowing for real-time correlation of method invocations across multiple threads and servers without synchronized clocks, with constant memory consumption independent of call depth, and enabling tracing of blocked transactions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional monitoring tools are used to trace distributed transactions, then transaction tracing capability is provided, but memory overhead increases significantly especially in recursive method calls
Solution Approach 1:
The monitoring system segments transaction tracing into discrete correlation information units stored in thread-local storage. Each thread maintains its own correlation data structure, dividing the global monitoring task into independent local segments that do not accumulate memory across recursive calls.
Solution Approach 2:
The patent extracts only the essential correlation information (transaction identification data, timing information, thread identifiers) from complete transaction traces and stores minimal data in thread-local storage. This extraction approach reduces memory overhead while preserving sufficient correlation capability for distributed transaction analysis.
2Measurement precision
If synchronized clocks are used across servers, then accurate transaction timing is achieved, but system complexity and configuration requirements increase
Solution Approach 1:
Each server independently manages its own correlation information without requiring coordinated clock synchronization. The system uses local timestamps and thread-local storage to maintain timing accuracy relative to each server's own clock, eliminating the need for complex inter-server clock synchronization while preserving transaction tracing accuracy.
3Reliability
If deep nested method executions are monitored, then complete transaction paths are captured, but memory consumption becomes unpredictable and may cause system crashes
Solution Approach 1:
The patent implements thread-local storage for correlation information, ensuring that each thread maintains its own monitoring data independently. This local quality approach prevents memory accumulation across thread boundaries and recursive calls, as each thread's correlation data is isolated and does not grow with the nesting depth of method executions.
Data Source
AI summary
The present invention provides a method and system for tracing and monitoring of distributed transactions spanning multiple threads or processes, running on multiple host systems, connected by a computer network. The correlation of distributed transactions is based on information that uniquely may identify execution paths within a virtual machine, additional to information which uniquely may identify the virtual machine that processes the execution path. The correlation information is transferred from a monitored thread to threads that are activated by the monitored thread and allows to reconstruct parent-child relations between different threads. Participating threads may run in different processes, in different virtual machines or on different host systems.


