Asynchronous Storage Volume Reservation with Persistent Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current storage volume reservation techniques lack efficiency and fault tolerance, as they often rely on synchronous processes that block resources and do not effectively handle failures, limiting the scalability and availability of storage systems.
Innovation Solution
Implementing asynchronous reservation commands with persistent storage of intermediate results, allowing for parallel execution of commands and roll-forward recovery in case of failures, enhancing the scalability and fault tolerance of storage systems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If synchronous reservation commands are used, then resource coordination between host devices is achieved, but system throughput and command processing speed deteriorate due to blocking resources
Solution Approach 1:
The patent applies preliminary action by creating a new execution thread and storing intermediate results to a persistent storage before the reservation command fully completes. This allows the system to prepare recovery points in advance, enabling asynchronous processing while maintaining coordination reliability. The front-end entity can continue processing other commands while the system manager executes the reservation command in the background.
Solution Approach 2:
The patent segments the reservation command processing into distinct phases: initial reception by front-end entity, asynchronous execution by system manager, intermediate result storage, and final notification. This segmentation allows parallel processing of multiple reservation commands simultaneously, improving throughput while maintaining reliability through persistent storage of intermediate states.
2Reliability
If asynchronous reservation commands with persistent storage are implemented, then command processing throughput and fault tolerance improve, but device complexity increases
Solution Approach 1:
The patent introduces persistent storage as an intermediary between the system manager and front-end entity. This intermediary component stores intermediate results, enabling the system to recover from failures without requiring complex retry logic or state synchronization mechanisms. The persistent storage acts as a buffer that simplifies the overall system architecture while improving fault tolerance.
3Productivity
If multiple reservation commands are processed in parallel, then system throughput increases, but difficulty in managing concurrent operations and ensuring data consistency increases
Solution Approach 1:
The patent implements feedback through the persistent storage mechanism that records intermediate results of each reservation command. When multiple commands are processed in parallel, the system can query the persistent storage to determine the current state of each command, enabling proper coordination and consistency management without complex locking mechanisms. The notification step provides feedback to the front-end entity about command completion status.
Data Source
AI summary
Techniques are provided for asynchronous reservation of storage volumes in a storage system with persistent storage of reservation data. One method comprises obtaining, by a target storage device, a reservation command from a host device that requests to reserve a storage volume of the target storage device; creating a new execution thread to process the reservation command, wherein an execution of the reservation command is asynchronous; storing an intermediate result of the reservation command in a persistent storage, wherein the stored intermediate result allows the execution of the reservation command to restart from an execution point following the storage of the intermediate result; and initiating a notification to the host device of the reservation of the storage volume in response to a completion of the execution of the reservation command. The target storage device may recover from a failure during a processing of the reservation command by loading a stored intermediate result from the persistent storage.


