Reservation Persistence in Distributed Block Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed block storage systems, the loss of reservations due to instance termination or detachment can lead to unexpected errors in data storage, as the reservation is typically removed, potentially causing data inconsistency.
Innovation Solution
A block storage service creates an additional slot in the volume's reservation table to represent a storage controller, which remains attached even if all instances terminate. This slot is only released by an explicit user command, preventing inadvertent reservation loss.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the reservation is removed upon instance termination or detachment, then the storage system can free up resources and allow new instances to access the volume, but the reservation may be inadvertently lost causing data inconsistency and unexpected errors
Solution Approach 1:
The reservation table is segmented into multiple slots, with one slot specifically designated for the storage controller. This segmentation allows the storage controller's reservation to be independently maintained without being affected by instance attachment/detachment operations. The storage controller's reservation slot remains persistent while other slots can be dynamically allocated and released.
Solution Approach 2:
The storage controller's reservation slot is pre-configured and maintained in advance, before any instance termination or detachment events occur. This preliminary reservation ensures that when instances are terminated or detached, the storage controller already has a reserved slot that prevents inadvertent reservation loss and maintains data consistency.
2Reliability
If an additional reservation slot is created for the storage controller, then reservation persistence is maintained preventing data inconsistency, but the device complexity increases
Solution Approach 1:
The additional reservation slot serves multiple functions: it maintains the storage controller's reservation persistence, prevents inadvertent reservation loss, and provides a foundation for implementing retention settings. By making this slot multi-functional, the patent reduces the need for separate mechanisms for each function, thereby managing complexity.
Solution Approach 2:
The patent introduces retention settings as a parameter that can be applied to access permissions records. This parameter change allows flexible control over whether reservations are retained or released upon detachment events, enabling the system to adapt to different reliability requirements without fundamentally changing the reservation table structure.
3Reliability
If retention settings are enforced for access permissions records, then reservation loss is prevented maintaining data consistency, but the ease of operation decreases due to additional configuration requirements
Solution Approach 1:
The storage controller automatically maintains its reservation in the dedicated slot without requiring explicit user commands for each attachment/detachment event. The system self-manages the reservation persistence, reducing the operational burden on users while maintaining reliability.
Solution Approach 2:
The patent introduces dynamic retention settings that can be configured on a per-volume basis. Users can choose whether to retain or release access permissions records upon detachment events, allowing the system to adapt to different operational requirements. This dynamic configuration enables users to balance reliability and ease of operation based on their specific needs.
Data Source
AI summary
A storage object and an associated permissions record is stored at a storage server. The permissions record indicates that some storage consumers are not permitted to perform a type of I/O operation on the storage object. In response to detecting that an event of a deletion triggering type with respect to the records, a modified version of the permissions record is stored at the server, indicating that the storage consumers remain prohibited from performing the I/O operations. In response to receiving a command to perform a particular I/O at the server after the modified version has been stored, the modified version is used to process the command.


