Snapshot Preparation Command for Large Consistency Groups

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-availability systems face performance degradation and prolonged downtime due to the time-consuming process of creating snapshots for large consistency groups, which requires quiescing I/O operations, making it difficult to maintain acceptable application performance during data backup.

Innovation Solution

The snapshot process is split into two separate commands: a snapshot preparation command to reserve resources and prepare the system, followed by a snapshot creation command, which reduces I/O quiescence and expedites the snapshot creation by throttling data rates, loading metadata into cache, and reserving necessary resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a snapshot is created of a large consistency group by quiescing I/O operations, then a consistent snapshot can be obtained, but system performance degrades and downtime increases

Engineering Contradiction:
Improvesnapshot consistencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The snapshot creation process is segmented into two distinct phases: a preparation phase where resources are reserved and I/O is throttled, and an execution phase where the actual snapshot copying occurs. This segmentation allows the system to prepare in advance without immediately impacting performance, then execute quickly when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions during the preparation phase by reserving resources and throttling I/O operations before the actual snapshot creation. This advance preparation reduces the impact on system performance during the critical snapshot copying operation.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If I/O quiescence is applied to create a snapshot, then data consistency is ensured, but total I/O quiescence duration increases

Engineering Contradiction:
Improvedata consistencyVSAvoidI/O quiescence duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The I/O quiescence process is segmented into a preparation phase where throttling is applied but not yet complete, and an execution phase where the snapshot is created. This segmentation reduces the total duration of full I/O quiescence by overlapping preparation activities with other system operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

I/O throttling and resource reservation are performed as preliminary actions before the snapshot execution phase. This allows the system to begin quiescing I/O early without blocking all operations, thereby reducing the total quiescence duration while maintaining data consistency.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If resources are reserved and I/O is throttled before snapshot creation, then snapshot creation speed increases, but system complexity increases

Engineering Contradiction:
Improvesnapshot creation speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The preparation command serves multiple functions: it reserves resources, throttles I/O operations, and prepares the system for rapid snapshot creation. By consolidating these functions into a single command structure, the system achieves faster snapshot creation without proportionally increasing complexity.

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

Data Source

PatentUS8407435B2Efficiently creating a snapshot of a large consistency group using multiple commands including a snapshot preparation command
Publication Date: 2013.03.26 MAPLEBEAR INC
  • US8407435B2 patent drawing
  • US8407435B2 patent drawing
  • US8407435B2 patent drawing

AI summary

Preparation of a snapshot for data storage includes receiving a first command to prepare to create a snapshot of a set of data stored on at least one source storage volume in a data storage system. The data storage system is prepared to expedite creation of the snapshot in response to the first command. A second command to create the snapshot is received subsequent to the first command. The snapshot is created, in response to the second command, by copying the set of data onto at least one target storage volume at an event time. The set of data may comprise a consistency group comprising a set of data blocks, and preparing the system to create the snapshot may include reserving resources, throttling an incoming data rate, starting a timer after receiving the first command, and/or copying data from a plurality of storage volumes into a memory cache.