Storage Controller Region-Based Locking for Concurrent I/O

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage subsystems face challenges in efficiently coordinating concurrent I/O requests, often requiring large granularity locking that limits parallel processing and can impact performance, necessitating a method for flexible locking of smaller regions to maintain data integrity.

Innovation Solution

Implementing a region-based locking system within the storage controller that allows for flexible definition of lock regions, enabling simultaneous processing of multiple I/O requests while ensuring data integrity by dynamically acquiring and releasing locks on specific regions, and managing these regions through a memory-based structure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If large granularity locking is used to coordinate concurrent I/O requests, then data integrity is maintained, but parallel processing capability is limited and performance deteriorates

Engineering Contradiction:
Improvedata integrityVSAvoidparallel processing capability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The storage controller divides the storage space into multiple independently lockable regions or zones. Instead of locking the entire storage space, the system locks only the specific regions affected by each I/O request. This segmentation allows concurrent I/O operations to proceed in parallel on different regions simultaneously, maintaining data integrity within each region while enabling overall system parallelism and improved performance.

Inventive Principle:
Principle #1Segmentation

2Productivity

If small granularity locking is implemented to enhance parallel processing, then performance improves, but system complexity increases

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidlocking mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The storage controller implements a universal locking mechanism that can operate at multiple granularity levels. The same locking infrastructure can lock entire storage spaces, individual regions, or specific data structures depending on the operation requirements. This multi-functional approach enables fine-grained locking for performance-critical operations while maintaining the ability to use coarser locking when appropriate, managing complexity through a unified system rather than separate mechanisms for each granularity level.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If region-based locking is implemented to allow flexible concurrent processing, then parallelism increases, but lock management overhead increases

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidlock acquisition and release time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The storage controller pre-divides the storage space into defined regions with established boundaries and metadata structures before I/O operations begin. These regions are pre-configured with lock identifiers and metadata that track their state. When an I/O request arrives, the controller can quickly determine which pre-defined regions are affected and acquire the corresponding locks without needing to dynamically create or calculate region boundaries during the locking process, reducing lock management overhead and time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7529902B2Methods and systems for locking in storage controllers
Publication Date: 2009.05.05 NETAPP INC
  • US7529902B2 patent drawing
  • US7529902B2 patent drawing
  • US7529902B2 patent drawing

AI summary

Methods and systems for improved lock processing in a storage controller. Storage controllers that provide storage management features such as RAID storage controllers may concurrently process I/O requests received from attached host systems and I/O requests generated internally by the management processing in the controller. Such concurrent processing is coordinated by lock processing that allows affected storage areas to be locked during processing of an I/O operation. Features and aspects hereof allow such lock processing to lock regions flexibly defined by the controller. The flexible definition of the regions to be locked allows variance in the granularity of the locks required. Smaller granularity permits more concurrent I/O requests to be processed.