Replication Progress Tracking in UPIT Snapshot Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems face challenges in efficiently managing and persistently storing replication progress information during the replication process, particularly in Virtual Storage Area Network (VSAN) environments, due to the large size and unique requirements of this data, which current persistency models cannot adequately address.

Innovation Solution

The implementation of a method using the native Universal Point in Time (UPIT) structure, specifically by determining and replicating different blocks between snapshots, orphaning nodes, and updating tree structures, to effectively manage replication progress information without altering the internal UPIT implementation or persistency model.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If replication progress data is stored using existing persistency models, then the replication process can track progress, but the performance and scale requirements are excessively high due to the large size of progress data

Engineering Contradiction:
Improvereplication progress trackingVSAvoidpersistency service performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the large replication progress data into smaller manageable units by utilizing existing UPIT snapshot structures. Instead of storing progress data as a single large entity, it distributes the information across multiple snapshot references and metadata structures, reducing the burden on persistency services while maintaining complete replication state tracking

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent makes the UPIT snapshot structure multi-functional by having it serve both its original snapshot purpose and simultaneously store replication progress information. The same snapshot metadata structures are used to track both data state and replication progress, eliminating the need for separate progress storage infrastructure

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

2Reliability

If replication progress data is stored in a manner that prevents re-replication upon interruption, then data integrity is maintained, but the storage scale requirements increase significantly

Engineering Contradiction:
Improvedata integrity during interruptionVSAvoidstorage scale requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent uses copying by referencing existing UPIT snapshot structures rather than creating duplicate progress storage systems. The replication progress is tracked by creating references to snapshot states that already exist in the storage system, avoiding the need to physically duplicate large amounts of data while maintaining the ability to resume replication from interruption points

Inventive Principle:
Principle #26Copying

3Reliability

If a dedicated progress data container is implemented, then replication progress can be tracked accurately, but the device complexity increases

Engineering Contradiction:
Improveprogress data tracking accuracyVSAvoidpersistency service structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the replication progress tracking function with the existing UPIT snapshot metadata structures. Instead of creating a separate dedicated progress container, it combines multiple functions (snapshot management and replication progress tracking) into the same data structures, thereby maintaining accurate progress tracking while avoiding additional system complexity

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11210319B2Replication progress for UPIT snapshots
Publication Date: 2021.12.28 EMC IP HLDG CO LLC
  • US11210319B2 patent drawing
  • US11210319B2 patent drawing
  • US11210319B2 patent drawing

AI summary

A method for storing progress data while replicating a snapshot is disclosed. The operations comprise: determining blocks in a storage object that are different between a first and a second snapshots, wherein the first snapshot corresponds to a first tree structure, and the second snapshot corresponds to a second tree structure; and replicating the second snapshot to a remote storage system, comprising replicating all the blocks in the storage object determined to be different between the first and the second snapshots, wherein the replicating further comprises: upon completion of replication of each data slice, determining nodes in the first tree structure that reference only already-replicated blocks; orphaning all such nodes in the first tree structure; and subsequently, updating the first tree structure, comprising merging the first tree structure and the second tree structure, wherein the first tree structure is updated upon completion of replication of each data slice.