Fault Tolerant Distributed Lock Manager Using Coherent Queue Copies

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional locking mechanisms in distributed computing systems lack fault tolerance, leading to system stalls if a process holding a lock crashes or if a lock order is lost, and they are not adaptable to dynamic changes in the number of participant nodes or processes.

Innovation Solution

A fault-tolerant distributed locking mechanism is implemented using a fault-tolerant queue with multiple coherent and concurrent copies, and a policing mechanism that allows lock managers to remove entries and withdraw locks, enabling failover to backup copies and managing access to shared resources even in the presence of device or application failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional locking mechanisms are used in distributed computing systems, then the system can provide synchronized access to shared resources, but the system lacks fault tolerance and will stall if a process holding a lock crashes or if a lock order is lost

Engineering Contradiction:
Improvefault toleranceVSAvoidlocking mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements multiple copies of the lock queue distributed across different machines in a cluster. Each lock manager maintains a copy of the queue, and if the primary lock manager fails, a backup lock manager with a copy of the queue can take over, ensuring fault tolerance without requiring complex state recovery mechanisms

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system proactively creates backup copies of the lock queue before failures occur. These standby copies are maintained in readiness state, so when a failure happens, the system can immediately failover to a backup copy rather than needing to reconstruct the queue state after failure, preventing system stalls

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Adaptability or versatility

If a single lock manager is used to manage access to shared resources, then the locking mechanism is simple to implement, but the system cannot adapt to dynamic changes in the number of participant nodes or processes

Engineering Contradiction:
Improvedynamic node adaptationVSAvoiddistributed queue management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system dynamically adapts to changes in the number of participant nodes and processes. When new nodes or processes join the distributed system, they can automatically join the lock queue without requiring system reconfiguration. The queue structure and lock management logic automatically accommodate dynamic membership changes, enabling the system to scale and adapt flexibly

Inventive Principle:
Principle #15Dynamics

3Reliability

If multiple copies of the queue are created and hosted by different machines, then the system achieves fault tolerance, but the device complexity and coordination overhead increase

Engineering Contradiction:
Improvesystem availabilityVSAvoidqueue copy management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Each lock manager instance is self-sufficient and can independently handle lock requests using its local copy of the queue. The system uses self-organizing mechanisms where lock managers automatically coordinate through the distributed queue structure without requiring a central coordinator or complex consensus protocols, reducing overall system complexity while maintaining fault tolerance

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9141440B2Fault tolerant distributed lock manager
Publication Date: 2015.09.22 RED HAT INC
  • US9141440B2 patent drawing
  • US9141440B2 patent drawing
  • US9141440B2 patent drawing

AI summary

A lock manager running on a machine may write a first entry for a first process to a queue associated with a resource. If the first entry is not at a front of the queue, the lock manager identifies a second entry that is at the front of the queue, and determines whether a second process associated with the second entry is operational. If the second process is not operational, the lock manager removes the second entry from the queue. Additionally, if the queue becomes unavailable, the lock manager may initiate failover to a backup copy of the queue.