RAID Memory Allocation Deadlock Prevention via Sorted Lock Ordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

RAID controllers face deadlock situations due to simultaneous requests for the same memory regions, leading to performance issues as neither request can be completed when memory regions are locked by other operations.

Innovation Solution

A method and system for allocating memory in RAID controllers that involves generating and sorting lock requests for memory regions in a predetermined order, using multiple processors to manage and process these requests, ensuring that memory regions are locked and released in a manner that avoids deadlocks by prioritizing the order of memory region numbers, such as from lowest to highest or highest to lowest.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple lock requests are processed simultaneously without ordering, then memory allocation speed is improved, but deadlock situations occur when requests conflict over the same memory regions

Engineering Contradiction:
Improvememory allocation speedVSAvoiddeadlock prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by sorting lock requests into a predetermined order before processing them. This pre-ordering of requests prevents deadlock situations by ensuring that memory regions are locked in a consistent sequence, eliminating the possibility of circular wait conditions that cause deadlocks.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of request processing order from arbitrary/simultaneous to predetermined sorted order. By introducing an ordering parameter based on memory region numbers or request identifiers, the system maintains high throughput while preventing deadlocks through consistent acquisition sequences.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If memory regions are locked quickly without strict ordering, then system throughput is improved, but contention and deadlocks increase when multiple operations need the same memory regions

Engineering Contradiction:
Improvesystem throughputVSAvoidmemory contention and deadlocks
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The system performs preliminary sorting of lock requests before execution. This pre-ordering action establishes a clear acquisition sequence that prevents circular wait conditions, thereby eliminating deadlocks while maintaining efficient memory allocation through rapid processing of sorted requests.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary sorting mechanism that mediates between concurrent lock requests. This intermediary layer orders requests based on predetermined criteria before they reach the memory allocation engine, resolving contention conflicts without blocking throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If lock requests are processed in arbitrary order, then implementation complexity is reduced, but deadlock situations arise when requests for the same memory regions conflict

Engineering Contradiction:
Improvelock request processing complexityVSAvoiddeadlock prevention
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent applies a simple preliminary sorting action that orders lock requests before processing. This straightforward pre-ordering approach adds minimal complexity while effectively preventing deadlocks by ensuring consistent memory region acquisition sequences across all operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system introduces a simple ordering parameter (such as memory region number or request ID) to transform arbitrary request processing into structured sequential processing. This parameter-based approach provides deadlock prevention with minimal additional complexity to the lock management system.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9632843B1Memory allocation for RAID systems
Publication Date: 2017.04.25 MICROSEMI SOLUTIONS US INC
  • US9632843B1 patent drawing
  • US9632843B1 patent drawing
  • US9632843B1 patent drawing

AI summary

A method and system for allocating memory in a RAID system. A RAID system requires the use of shared memory to store processed data related to operations of different mass storage devices. Certain RAID algorithms require different sizes of memory regions of the memory, and multiple requests to lock the required memory regions are therefore required. As multiple requests are made in parallel for different operations, the multiple requests for each operation are sorted in a predetermined order. This ensures that all memory regions for one operation can be locked. Requests for memory regions locked by a second operation are held in a pending state to wait for release of those memory regions by a first operation, at which point they are locked again by the second operation.