Multi-Version Write Pending Support in Shared Global Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing methods for improving write IO performance in storage systems, especially when frequent snapshots are created, are hindered by the need for synchronous intercept processes that preserve previous versions of data, leading to impacts on response rate and throughput.
Innovation Solution
Implementing multi-version write pending support in shared global memory, where write operations can be accepted directly into versioned slots without requiring a synchronous intercept process, using a track index table to manage data versions and sequence numbers, allowing for multiple versions of data to be maintained without always needing a real-time intercept process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a synchronous intercept process is implemented to copy previous data to a snapshot replication area before accepting new write data, then data integrity for snapshots is ensured, but write IO performance (response rate and throughput) deteriorates
Solution Approach 1:
The patent segments the write operation into two independent phases: (1) immediately accepting new write data into a global memory slot and acknowledging it to the host, and (2) asynchronously copying the previous version to the snapshot replication area. This segmentation eliminates the synchronous intercept bottleneck while ensuring snapshot data integrity through the async copy mechanism.
Solution Approach 2:
The patent performs preliminary actions by pre-allocating multiple versioned slots in global memory and establishing the versioning framework in advance. When a write occurs, the system can immediately use an available slot without interception, while the snapshot preservation is handled as a subsequent async operation, improving write performance while maintaining reliability.
2Productivity
If multiple versioned slots are used in shared global memory to accept write operations directly, then write IO performance is improved, but system complexity increases due to version management
Solution Approach 1:
The global memory slots are designed with multi-functionality, serving both as temporary buffers for write-pending data and as versioned storage for snapshot preservation. Each slot can hold data for multiple versions (current and previous), eliminating the need for separate snapshot storage structures and reducing overall system complexity despite supporting multiple versions.
Solution Approach 2:
The patent introduces version identifiers as a parameter to track data versions in global memory slots. By changing the state parameter (version ID) rather than the structural complexity, the system can manage multiple versions efficiently. The version parameter allows the same slot to represent different data states without requiring additional physical storage structures.
Data Source
AI summary
A storage system is configured to accept subsequent versions of write data on a given track to multiple respective slots of shared global memory. A track index table presents metadata at the track level, and can hold up to N slots of data. All slots of shared global memory holding data owed to the source volume and to snapshots of the source volume are bound to the track in the track index table. Each time a write occurs on a track, the track index table is used to determine when a write pending slot for the track is owed to a snapshot copy of the storage volume. When a write pending slot contains data that is owed to a snapshot copy of the source volume, a new slot is allocated to the write IO and bound to the track in the track index table.


