Thread Flow Markers for Concurrent Execution Sequence Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current compiler technologies face challenges in diagnosing and visualizing the time sequence of concurrent thread executions, particularly in identifying deadlocks and memory leaks, as traditional thread dumps only provide a snapshot of thread status without revealing the execution order.

Innovation Solution

The introduction of a thread flow marker class that embeds markers in source code to track the flow of data from concurrent threads, allowing for the visualization of the order of execution through heap and thread dumps, which helps identify the cause of deadlocks and memory leaks by analyzing the lifecycle of objects.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If traditional thread dumps are used to capture thread status, then thread status information can be obtained, but the time sequence of execution and execution order of concurrent threads cannot be identified

Engineering Contradiction:
Improveexecution time sequence informationVSAvoidthread tracking system complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by inserting flow markers into the source code at specific execution points before the concurrent threads run. These markers record execution events in advance, creating a timeline of thread operations that can be extracted later from heap dumps without requiring complex real-time tracking infrastructure.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses flow markers as intermediary objects that mediate between the concurrent threads and the diagnostic system. These markers are embedded in the thread execution flow and automatically captured in heap dumps, serving as a bridge to extract execution time sequence information without adding complex monitoring overhead to the application.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If thread synchronization is implemented to ensure compatibility, then thread safety is improved, but deadlock situations may occur when threads wait for each other

Engineering Contradiction:
Improvethread safetyVSAvoiddeadlock risk
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent applies feedback by extracting execution time sequence information from heap dumps and presenting it in a visualized format that shows the chronological order of thread operations. This feedback mechanism allows developers to review the actual execution timeline and identify deadlock conditions or synchronization issues that may not be apparent from standard thread status information alone.

Inventive Principle:
Principle #23Feedback

3Loss of information

If heap dumps are performed to capture memory state, then memory allocation information can be obtained, but the execution order of threads causing memory leaks cannot be identified

Engineering Contradiction:
Improvethread execution order informationVSAvoiddata processing overhead
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent applies segmentation by dividing the execution timeline into discrete segments marked by flow markers at specific execution points. Each marker represents a distinct execution event, and by segmenting the thread execution into these identifiable markers, the system can extract and analyze the chronological order of operations without processing the entire complex memory state at once.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9697102B2Compare concurrent threads executions
Publication Date: 2017.07.04 SAP SE
  • US9697102B2 patent drawing
  • US9697102B2 patent drawing
  • US9697102B2 patent drawing

AI summary

A method for comparing concurrent thread executions is disclosed. A thread flow marker class is defined for a source code. One or more markers of the thread flow marker class are embedded in a class of interest or in places of interest within the class of interest in the source code. A flow of data from concurrent threads executions from the source code is tracked using the one or more markers.