Task Object Instrumentation for Distributed Thread Correlation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing application monitoring systems fail to effectively correlate components across multiple threads in distributed business transactions, leading to difficulties in troubleshooting performance issues due to lost chains of correlation between applications or threads.

Innovation Solution

The technology identifies and instruments task objects within payloads to track and correlate them with other executing threads, determining the constructor of the task object and linking the current thread with the thread that creates the task, thereby tying together components as part of a business transaction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If application monitoring software monitors only application callables and runnables, then monitoring coverage is limited to specific programming types, but correlation of all application components is lost

Engineering Contradiction:
Improvecorrelation accuracyVSAvoidmonitoring coverage
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The monitoring system is extended to universally monitor all programming types including synchronizers, asynchronous messaging, and event handlers, not just traditional callables and runnables. This universal approach ensures complete correlation of application components across different programming paradigms while maintaining systematic tracking capabilities.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

Task objects are introduced as intermediary elements that carry correlation information between different threads and programming types. These task objects act as mediators that link asynchronous operations, event handlers, and synchronous code, enabling complete traceability across diverse application components without requiring separate monitoring mechanisms for each type.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If distributed web application topology is expanded across multiple machines, then service capacity and functionality are improved, but tracking and monitoring difficulty increases

Engineering Contradiction:
Improveservice capacityVSAvoidmonitoring complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The distributed system is segmented into discrete task objects that can be independently tracked across multiple machines. Each task object contains correlation information that allows the monitoring system to reconstruct the complete execution flow across the distributed topology, breaking down the complex monitoring problem into manageable segments that can be tracked individually and then correlated.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The monitoring system implements feedback mechanisms where task objects carry correlation identifiers and execution state information back to the central monitoring infrastructure. This feedback loop enables the system to automatically track and correlate operations across distributed machines, providing visibility into the complex topology without increasing manual monitoring complexity.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9912522B2Automatic task tracking
Publication Date: 2018.03.06 CISCO TECHNOLOGY INC
  • US9912522B2 patent drawing
  • US9912522B2 patent drawing
  • US9912522B2 patent drawing

AI summary

The present technology correlates tasks between multiple threads of an application. A payload consisting of a task object may be identified as part of a method. Identification of the task object may be performed using instrumentation or some other method. Once the task object is identified, the payload may be instrumented to track the task object or payload and correlate the task object with other executing threads. Instrumenting the payload may include determining the constructor of the task object and instrumenting the task object constructors to determine what creates the task object. Once the source of a task object or payload is determined, the current thread having the task object as a parameter and another thread which creates the task may be tied together as part of a business transaction.