Concurrent Lock Management for Shared Resources

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in managing concurrent access requests to shared resources, leading to issues of mutual exclusivity, starvation, and deadlock, particularly when handling shared and exclusive lock requests simultaneously.

Innovation Solution

The proposed system employs three data structures - a global count, a per-process count, and an exclusive_waiting count - to dynamically account for shared locks and waiting processes, allowing for concurrent exclusive and shared lock requests while maintaining mutual exclusivity and avoiding starvation and deadlock.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If shared lock requests and exclusive lock requests are made mutually exclusive, then data consistency is maintained, but starvation and deadlock occur

Engineering Contradiction:
Improvedata consistencyVSAvoidprocess access efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by checking for exclusive waiters before granting shared locks. When an exclusive lock is requested, the system sets an exclusive_waiter flag that prevents subsequent shared lock grants, ensuring data consistency is maintained before conflicts occur. This preliminary check avoids the need for mutual exclusion between all shared and exclusive requests while preventing inconsistent access patterns.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The lock granting mechanism is made dynamic by allowing multiple shared locks to be granted concurrently when no exclusive lock is requested, and automatically transitioning to exclusive mode when an exclusive lock request is detected. This dynamic behavior eliminates starvation by allowing shared locks to proceed when safe, while preventing deadlock by ensuring exclusive locks can acquire when needed.

Inventive Principle:
Principle #15Dynamics

2Productivity

If multiple shared locks are granted concurrently, then resource utilization improves, but exclusive lock requests are starved

Engineering Contradiction:
Improveresource utilizationVSAvoidexclusive lock waiting time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs a preliminary check for exclusive lock requests before granting shared locks. By setting the exclusive_waiter flag in advance when an exclusive request is detected, the system ensures that shared locks are not granted that would subsequently block the exclusive request, thereby preventing starvation while maintaining high resource utilization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback from exclusive lock requests to control shared lock granting. When an exclusive lock request is detected, the exclusive_waiter flag provides feedback that immediately changes the behavior of shared lock granting, ensuring that exclusive requests are not starved while allowing maximum concurrent shared access when safe.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If recursive locks are granted to shared lock owners, then process continuity is maintained, but deadlock may occur

Engineering Contradiction:
Improveprocess continuityVSAvoiddeadlock prevention
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system performs preliminary validation before granting recursive locks by checking whether an exclusive waiter is present. This preliminary check prevents the condition that would lead to deadlock while allowing recursive locks to be granted when safe, thereby maintaining process continuity without compromising reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The exclusive_waiter flag acts as an intermediary that mediates between recursive lock requests and exclusive lock waiters. By checking this flag before granting recursive locks, the system prevents deadlock scenarios while allowing recursive access when no exclusive request is pending, thus maintaining both process continuity and deadlock prevention.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7346720B2Systems and methods for managing concurrent access requests to a shared resource
Publication Date: 2008.03.18 EMC IP HLDG CO LLC
  • US7346720B2 patent drawing
  • US7346720B2 patent drawing
  • US7346720B2 patent drawing

AI summary

The systems and methods manage concurrent access requests to a shared resource. The systems and methods utilize an access management algorithm that permits multiple processes to concurrently obtain shared locks on the shared resource, but also limits access to only one process when an exclusive lock is granted. In doing so, the systems and methods avoid the problems of starvation and deadlock.