Multi-Version Write Pending Support in Shared Global Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata integrity for snapshotsVSAvoidwrite IO performance
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvewrite IO performanceVSAvoidversion management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12039168B2Multiple version write pending support in shared global memory
Publication Date: 2024.07.16 DELL PROD LP
  • US12039168B2 patent drawing
  • US12039168B2 patent drawing
  • US12039168B2 patent drawing

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.