Distributed Relational Catalog Deadlock Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems lack the ability to predictively identify potential deadlocks between catalog access statements at runtime, leading to inefficiencies and performance issues, as they often require simulation which may not expose all deadlocks and can be time-consuming.

Innovation Solution

A deadlock testing module that analyzes lock schedules ahead of time to determine potential deadlocks by transforming catalog access statements into lock schedules, exploring all timing combinations, and utilizing blocking locks to prevent deadlocks from occurring, thus avoiding runtime interference and improving system performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If runtime deadlock detection is used to identify potential deadlocks between catalog access statements, then system reliability is improved by preventing deadlocks, but system performance deteriorates due to runtime interference and detection overhead

Engineering Contradiction:
Improvedeadlock preventionVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs deadlock detection at compile time rather than runtime by analyzing lock schedules and transforming catalog access statements into lock schedules. This preliminary action identifies potential deadlocks before the system runs, allowing the generation of deadlock-free code without runtime detection overhead, thus maintaining both reliability and performance

Inventive Principle:
Principle #10Preliminary action

2Reliability

If simulation is used to test catalog access statements for deadlocks, then potential deadlocks can be identified, but the testing process becomes time-consuming and may not expose all deadlocks

Engineering Contradiction:
Improvedeadlock identificationVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent transforms catalog access statements into lock schedules at compile time and performs static analysis to identify potential deadlocks. This preliminary transformation and analysis eliminates the need for time-consuming runtime simulation while ensuring all potential deadlocks are identified through comprehensive lock schedule analysis

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces dynamic simulation (mechanical testing approach) with static analysis of lock schedules. By transforming the testing mechanism from runtime simulation to compile-time analysis, the system achieves complete deadlock identification without the time loss and incompleteness issues of simulation

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9734186B1Method of testing coverage of meta data access patterns within a distributed relational system
Publication Date: 2017.08.15 EMC IP HLDG CO LLC
  • US9734186B1 patent drawing
  • US9734186B1 patent drawing
  • US9734186B1 patent drawing

AI summary

A first and a second catalog access statement are obtained. For the first catalog access statement, a first lock schedule which includes a catalog resource being locked and a lock strength is obtained. For the second catalog access statement, a second lock schedule which includes a catalog resource being locked and a lock strength are obtained. A potential deadlock between the first and the second catalog access statement is identified, including by comparing the first lock schedule and the second lock schedule.