IP Library Granted Patent US 9,231,858
Granted Patent B1
US 9,231,858 · App. 12/971,408 · Granted Jan 5, 2016

Completeness detection of monitored globally distributed synchronous and asynchronous transactions

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,231,858
App. No.
12/971,408
Granted
Jan 5, 2016
Kind
B1
Abstract

A method and system for detection of completeness of tracing data describing globally distributed, synchronous and asynchronous transaction in real time is presented. Monitored transactions may be executed on different computers systems, connected via computer networks with different and fluctuating latencies, and timing systems of the computers systems may be subject to different time drifts. The system and method may be implemented by different, multiple collector nodes responsible for collecting and forwarding transaction tracing data to a monitoring node, responsible for correlating transaction tracing data. Collector nodes and monitoring node may reside on different computer systems, which may be connected via computer networks with different and fluctuating latencies, and timing systems of the computers systems may be subject to different time drifts. Completeness detection may consider different time drifts and different, fluctuating network latencies of all involved computer system and computer networks to translate time information received with tracing data into a virtual timing system, which may be used to implement a deterministic algorithm to detect completeness of tracing data describing the execution of distributed, synchronous and asynchronous transactions.

Claims (28)

1. A method comprising:

(A) selecting a start path record representing a start path of a distributed transaction, wherein the start path corresponds to execution of a first part of the distributed transaction, wherein a plurality of application nodes executes parts of the distributed transaction, wherein the plurality of application nodes execute on a plurality of computer systems, wherein a first application node in the plurality of application nodes executes a first part of the distributed transaction, wherein a first plurality of agents is installed on the plurality of application nodes, wherein at least one of the plurality of agents is installed on each of the plurality of application nodes, wherein the start path does not have a parent path;

(B) identifying a completion timestamp, represented in a timing system of a destination node executing on one of the plurality of computer systems, indicating a completion time of the start path;

(C) identifying an oldest latest event timestamp, represented in a timing system of the monitoring node, from among a plurality of latest event timestamps associated with a second plurality of agents, the second plurality of agents including the first plurality of agents that are installed on the plurality of application nodes;

(D) determining whether the oldest agent timestamp represents a time that is later in time than the completion timestamp;

(E) if the oldest agent timestamp is determined to represent a time that is later in time than the completion timestamp, then setting a completeness state of the start path to indicate that the start path has completed;

(F) if the oldest agent timestamp is determined to represent a time that is later in time than the completion timestamp, then determining whether all sub-paths of the start path have completed;

(G) if it is determined that all sub-paths of the start path have completed, then setting a completeness state of the start path to indicate that the start path has completed; and

(H) if it is not determined that all sub-paths of the start path have completed, then, if a timeout period associated with the start path has elapsed since the start path has initiated, then setting a completeness state of the start path to indicate that the start path was completed by timeout.

2. The method of claim 1 , wherein (E) further comprises setting completeness states of all descendant paths of the start path to indicate that the descendant paths have completed.

3. The method of claim 1 , wherein the start path includes at least one asynchronous part, and wherein (D) comprises determining whether the oldest agent timestamp represents a time that is later in time than a sum of the completion timestamp and an asynchronous wait time.

4. The method of claim 1 , further comprising:

(I) if the oldest agent timestamp is determined to represent a time that is later in time than a sum of the completion timestamp and an asynchronous wait time, then determining whether all sub-paths of the start path have completed; and

(J) if it is determined that all sub-paths of the start path have completed, then setting a completeness state of the start path to indicate that the start path has completed.

5. A system comprising at least one non-transitory computer-readable medium comprising computer-program instructions executable by at least one computer processor to perform a method, the method comprising:

(A) selecting a start path record representing a start path of a distributed transaction, wherein the start path corresponds to execution of a first part of the distributed transaction, wherein a plurality of application nodes executes parts of the distributed transaction, wherein the plurality of application nodes execute on a plurality of computer systems, wherein a first application node in the plurality of application nodes executes a first part of the distributed transaction, wherein a first plurality of agents is installed on the plurality of application nodes, wherein at least one of the plurality of agents is installed on each of the plurality of application nodes, wherein the start path does not have a parent path;

(B) identifying a completion timestamp, represented in a timing system of a destination node executing on one of the plurality of computer systems, indicating a completion time of the start path;

(C) identifying an oldest latest event timestamp, represented in a timing system of the monitoring node, from among a plurality of latest event timestamps associated with a second plurality of agents, the second plurality of agents including the first plurality of agents that are installed on the plurality of application nodes;

(D) determining whether the oldest agent timestamp represents a time that is later in time than the completion timestamp; and

(E) setting a completeness state of the start path to indicate that the start path has completed if the oldest agent timestamp is determined to represent a time that is later in time than the completion timestamp;

(F) determining whether all sub-paths of the start path have completed if the oldest agent timestamp is determined to represent a time that is later in time than the completion timestamp;

(G) setting a completeness state of the start path to indicate that the start path has completed if it is determined that all sub-paths of the start path have completed; and

(H) setting a completeness state of the start path to indicate that the start path was completed by timeout if: (1) it is not determined that all sub-paths of the start path have completed and (2) a timeout period associated with the start path has elapsed since the start path has initiated.

6. The system of claim 5 , wherein (E) further comprises setting completeness states of all descendant paths of the start path to indicate that the descendant paths have completed.

7. The system of claim 5 , wherein the start path includes at least one asynchronous part, and wherein (D) comprises determining whether the oldest agent timestamp represents a time that is later in time than a sum of the completion timestamp and an asynchronous wait time.

8. The system of claim 5 , wherein the method further comprises:

(I) determining whether all sub-paths of the start path have completed if the oldest agent timestamp is determined to represent a time that is later in time than a sum of the completion timestamp and an asynchronous wait time; and

(J) setting a completeness state of the start path to indicate that the start path has completed if it is determined that all sub-paths of the start path have completed.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2022
From: DYNATRACE SOFTWARE GMBH
To: DYNATRACE LLC
Reel/Frame 062119/0843 →
RELEASE OF FIRST LIEN PATENT SECURITY AGREEMENT RECORDED AT REEL\FRAME 035200\0973 AND 035200\0955 Recorded Aug 23, 2018
From: JEFFERIES FINANCE LLC
To: DYNATRACE LLC; COMPUWARE CORPORATION
Reel/Frame 046922/0886 →
TERMINATION OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 035201/0065 Recorded Feb 14, 2018
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: COMPUWARE CORPORATION
Reel/Frame 045325/0384 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Mar 13, 2015
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE, LLC
Reel/Frame 035200/0973 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Mar 13, 2015
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE, LLC
Reel/Frame 035201/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2010
From: GREIFENEDER, BERND; PFLEGER, MARKUS; KOHEL, ROBERT
To: DYNATRACE SOFTWARE GMBH
Reel/Frame 025517/0883 →