Distributed Deadlock Resolution via Priority-Based Resource Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed computing environments, resource deadlocks occur when processes are unable to secure necessary resources, leading to system performance hindrance and resource wastage, as existing deadlock detection methods fail to resolve the issue effectively.

Innovation Solution

A method involving a shared data structure to maintain process records, define states, and prioritize processes to allocate and deallocate resources, allowing processes with lower priority to release resources and higher priority processes to claim them, thereby resolving deadlocks without relying on network messaging or explicit global Wait-For-Graph construction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If distributed processes use shared resources from a resource scheduler, then resource utilization is improved, but resource deadlocks occur when allocation numbers are lower than minimum requirements

Engineering Contradiction:
Improveresource utilizationVSAvoiddeadlock occurrence
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by pre-defining process states (such as waiting state, running state) and process priorities before resource allocation occurs. The resource scheduler uses these pre-established states and priorities to make allocation decisions, ensuring that processes receive appropriate resources based on their defined characteristics rather than arbitrary allocation, thereby preventing deadlocks while maintaining resource utilization

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of resource allocation from static or arbitrary allocation to dynamic allocation based on process states and priorities. By adjusting resource allocation according to the defined process parameters (states and priorities), the system optimizes resource distribution to prevent deadlock conditions while maintaining high resource utilization rates

Inventive Principle:
Principle #35Parameter changes

2Difficulty of detecting and measuring

If existing deadlock detection methods are used, then deadlock detection capability is improved, but system performance is hindered and resources are wasted

Engineering Contradiction:
Improvedeadlock detection capabilityVSAvoidsystem performance
Core Design Contradiction:
Difficulty of detecting and measuringVSProductivity

Solution Approach 1:

The patent implements self-service by enabling processes to autonomously resolve deadlocks through the defined state and priority mechanism. When a deadlock situation arises, the resource scheduler automatically identifies the deadlocked processes based on their states and priorities, and reallocates resources without requiring external intervention or complex detection algorithms, thus maintaining system performance while preventing deadlocks

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent uses feedback by continuously monitoring process states and resource allocation status. The resource scheduler receives feedback about process conditions and adjusts resource allocation accordingly. This feedback loop enables the system to detect and resolve potential deadlocks before they occur, maintaining both detection capability and system performance

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10970132B2Deadlock resolution between distributed processes
Publication Date: 2021.04.06 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10970132B2 patent drawing
  • US10970132B2 patent drawing
  • US10970132B2 patent drawing

AI summary

A system for resolving a resource deadlock between processes. A shared data structure is maintained that includes process records of the processes. Process states and process priorities are defined for each of the processes. A respective state of the process is determined for each process based on the process states and process priorities of the process records maintained in the shared data structure. The respective state is used to allocate and deallocate resources to the process to mitigate and resolve the resource deadlock between the processes.