Storage Recovery Conflict Resolution via Segmented Journal Locking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High performance storage arrays face deadlocks and race conditions during recovery due to concurrent operations on the same logical units, leading to potential stale data and prolonged recovery times.

Innovation Solution

Implement a reference counted locking mechanism that separates journal entries into different arrays based on journal type and sub-logical unit number (LUN) addresses, using range locks and address locks to optimize recovery operations and minimize conflicts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If concurrent recovery operations work on the same journal entries simultaneously, then recovery speed is improved, but deadlocks and race conditions occur

Engineering Contradiction:
Improverecovery speedVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments journal entries into different arrays based on their type (first array for first type of recovery operations, second array for second type of recovery operations). This segmentation allows concurrent operations to proceed in parallel without interfering with each other, as each array is processed independently. The segmentation resolves the deadlock issue by ensuring that operations on the same logical units do not conflict, while maintaining high recovery throughput.

Inventive Principle:
Principle #1Segmentation

2Reliability

If range locks are taken on sub-LUN addresses, then access control is improved, but recovery time increases

Engineering Contradiction:
Improveaccess controlVSAvoidrecovery time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent takes range locks on sub-LUN addresses before processing journal entries, establishing access control in advance. This preliminary locking action prevents potential conflicts during recovery operations. The system then processes entries efficiently by checking a reference count hash table to determine if additional address locks are needed, optimizing the balance between access control and recovery speed.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If reference count hash table is used to track locked sub-LUNs, then conflict resolution is improved, but system complexity increases

Engineering Contradiction:
Improveconflict resolutionVSAvoidsystem structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a reference count hash table as an intermediary data structure to track which sub-LUN addresses are currently locked. This hash table acts as a mediator between the locking mechanism and the recovery operations, allowing efficient O(1) lookup to determine if additional locks are needed. The intermediary structure simplifies conflict resolution by providing a quick reference guide, avoiding the need for complex global state management while maintaining reliable access control.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10698774B2Method to resolve conflicts during recovery in a storage system
Publication Date: 2020.06.30 EMC IP HLDG CO LLC
  • US10698774B2 patent drawing
  • US10698774B2 patent drawing
  • US10698774B2 patent drawing

AI summary

An aspect of resolving conflicts during recovery operations includes separating journal entries for first and second types of recovery operations into each of a first and second array. For each entry in the first array, an aspect includes taking a range lock of a designated number of the addresses and creating an entry in a table. For each entry in the second array, an aspect includes upon determining a corresponding sub-LUN has been locked for an entry in the first array, incrementing a count in the table. Upon determining the corresponding sub-LUN is not locked for the entry, an aspect includes taking the address lock for the entry in the second array. An aspect further includes opening gates for a corresponding address, performing a first recovery operation corresponding to the first type of recovery operation, and performing a second recovery operation corresponding to the second type of recovery operation.