Concurrent Deadlock Detection via Transition Counters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional deadlock detection mechanisms in multiprocessor systems are computationally intrusive and cumbersome, often requiring global thread suspension, which impacts performance and can lead to false positives due to frequent and unnecessary scans, especially in systems with many threads.

Innovation Solution

A lightweight, concurrent deadlock detection mechanism that operates in runtime, allowing threads to continue execution by combining thread dependency enumeration with a progression check to identify and confirm potential deadlocks without global suspension, using a 'waits for' graph and transition counters to differentiate between apparent and actual deadlocks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional deadlock detection mechanisms are used, then deadlocks can be detected, but performance deteriorates due to global thread suspension and frequent scans

Engineering Contradiction:
Improvedeadlock detection accuracyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the deadlock detection process into two independent phases: (1) dependency graph construction that runs concurrently without suspending threads, and (2) cycle detection that identifies potential deadlocks. This segmentation eliminates global suspension while maintaining detection accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by constructing the dependency graph in advance during normal thread execution without suspension. Thread dependencies are recorded as they occur, allowing the system to have detection data ready before actual deadlock verification is needed, thus avoiding performance degradation from on-demand global suspension.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If frequent deadlock scans are performed, then detection reliability improves, but false positives increase due to thread state changes during scanning

Engineering Contradiction:
Improvedeadlock detection reliabilityVSAvoidfalse positive rate
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent uses feedback by implementing a verification phase where detected cycles are checked against current thread states. The system monitors whether threads in detected cycles are actually blocked or have progressed, providing feedback to confirm or reject potential deadlock detections and eliminate false positives.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent applies dynamics by making the detection process adaptive - it continuously updates the dependency graph as threads execute and transitions states change. The system dynamically verifies detected cycles by checking current thread block states, allowing it to distinguish true deadlocks from apparent cycles caused by transient state changes.

Inventive Principle:
Principle #15Dynamics

3Reliability

If global thread suspension is used for detection, then accurate deadlock identification is achieved, but resource allocation efficiency decreases

Engineering Contradiction:
Improvedeadlock identification accuracyVSAvoidthread execution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments detection into concurrent graph construction (no suspension) and verification phases, eliminating the need for global thread suspension while maintaining accurate deadlock identification through the verification of blocked thread states.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary dependency graph that captures thread-resource relationships without requiring thread suspension. This intermediary structure allows the system to analyze deadlock potential by examining the graph and verifying block states, rather than forcing all threads to pause for detection.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7496918B1System and methods for deadlock detection
Publication Date: 2009.02.24 ORACLE AMERICAN INC
  • US7496918B1 patent drawing
  • US7496918B1 patent drawing
  • US7496918B1 patent drawing

AI summary

A lightweight, concurrent detection mechanism avoids global thread suspension by operating during runtime with threads under examination. A particular configuration combines a dependency (“waits for”) snapshot with a progression check to determine advancement of purportedly deadlocked threads. Thread blocking is enumerated in a table or graph which denotes dependencies of threads and the corresponding resources. For identified circular dependencies, a successive transition, or progression check ratifies the potential deadlock. A transition counter corresponding to each thread is analyzed in the progression check. The transition counter is indicative of a change in state for the process in question, hence is indicative of instruction execution, an activity not performed by a blocked process. Deadlock is therefore ratified if the transition counters associated with the threads in the potential deadlock have not advanced.