Correlating Client Server Transactions Using Unique Identifiers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current application performance management systems struggle to monitor and manage transactions across multiple tiers and components in a network, particularly due to difficulties in correlating causally related transaction call sequences across independently running client and server components, and the limitations of traditional tracing methods which are costly and impact system performance.

Innovation Solution

A framework for real-time tracing and correlation of transaction calls across multiple tiers and components, using a throughput manager to balance performance and detail, and employing checksums and unique identifiers to associate client and server socket calls, enabling continuous tracing with minimal overhead and efficient data management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional tracing methods are used to monitor transactions across multiple tiers, then transaction monitoring capability is provided, but system performance is negatively impacted and disk space is consumed

Engineering Contradiction:
Improvetransaction monitoring capabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The tracing framework segments the transaction monitoring process into discrete components: a tracer that instruments method calls, a correlation engine that matches calls across tiers using unique identifiers, and a results manager that stores and retrieves trace data. This segmentation allows selective tracing of specific transactions rather than continuous full-system tracing, reducing overall performance impact while maintaining monitoring capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by establishing unique identifiers and correlation contexts before transactions execute. The tracer records method call parameters and generates unique IDs that will be used for later correlation. This preliminary setup enables efficient real-time correlation without requiring expensive post-processing, thus reducing the performance burden during actual transaction execution.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If continuous tracing is implemented to capture all transactions, then complete transaction monitoring is achieved, but system performance degradation increases

Engineering Contradiction:
Improvetransaction monitoring completenessVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The tracing system dynamically adjusts its behavior based on transaction characteristics and system conditions. The tracer can be configured to trace all transactions or only those matching specific criteria. The correlation engine dynamically matches calls based on unique identifiers generated during execution. This dynamic adaptability allows the system to provide complete monitoring when needed while reducing overhead during normal operation.

Inventive Principle:
Principle #15Dynamics

3Quantity of substance

If manual trace initiation is used to limit tracing duration, then disk space consumption is controlled, but transaction diagnosis capability is reduced

Engineering Contradiction:
Improvedisk space consumptionVSAvoidtransaction diagnosis capability
Core Design Contradiction:
Quantity of substanceVSDifficulty of detecting and measuring

Solution Approach 1:

The system incorporates feedback mechanisms where the results manager continuously monitors trace data and can automatically terminate tracing when transactions complete or when storage thresholds are approached. The correlation engine provides feedback by matching completed calls and generating diagnostic results. This feedback loop enables automatic trace management that balances disk space usage with diagnostic capability, eliminating the need for manual initiation while controlling resource consumption.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9549030B2Correlating input and output requests between client and server components in a multi-tier application
Publication Date: 2017.01.17 ATERNITY LLC
  • US9549030B2 patent drawing
  • US9549030B2 patent drawing
  • US9549030B2 patent drawing

AI summary

The present invention relates to correlating requests between a client and a server to a particular transaction. In one embodiment, transactions in a system of clients and servers are monitored and traced. From this information, a context comprising sets or groupings of transaction call sequences are determined. For example, a sequence of method calls on a client process is traced to a socket carrying data for transmission of a request message to a server. In response to this request message, the server then executes a set of method calls that can be correlated to the request message and the socket. This set of actions is considered part of a causally related grouping, and thus, associated together. In one embodiment, HTTP requests from a client may be comprise a unique custom header that is readily identified and traced. For other protocols, a client socket is associated with a corresponding server socket or to data received over a socket receive call.