Storage Recovery Conflict Resolution via Segmented Journal Locking
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Reliability
If range locks are taken on sub-LUN addresses, then access control is improved, but recovery time increases
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.
3Reliability
If reference count hash table is used to track locked sub-LUNs, then conflict resolution is improved, but system complexity increases
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.
Data Source
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.


