Distributed Transaction Tracing via Thread-Local Correlation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvetransaction tracing capabilityVSAvoidmemory overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #2Taking out (Extraction)

2Measurement precision

If synchronized clocks are used across servers, then accurate transaction timing is achieved, but system complexity and configuration requirements increase

Engineering Contradiction:
Improvetransaction timing accuracyVSAvoidclock synchronization configuration
Core Design Contradiction:
Measurement precisionVSDevice complexity

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.

Inventive Principle:
Principle #25Self-service

3Reliability

If deep nested method executions are monitored, then complete transaction paths are captured, but memory consumption becomes unpredictable and may cause system crashes

Engineering Contradiction:
Improvetransaction path capture completenessVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8234631B2Method and system for tracing individual transactions at the granularity level of method calls throughout distributed heterogeneous applications without source code modifications
Publication Date: 2012.07.31 DYNATRACE LLC
  • US8234631B2 patent drawing
  • US8234631B2 patent drawing
  • US8234631B2 patent drawing

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.