Application-Consistent Storage Snapshots via Proactive Buffer Flushing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing snapshot creation processes in computing systems interrupt application operations for an extended period due to the lack of coordination between applications and storage systems, leading to longer backup times and increased risk of backup failures.

Innovation Solution

A method is introduced to proactively flush I/O data from host buffers to a write cache before initiating a snapshot, reducing the amount of data that needs to be flushed during the snapshot process, thereby shortening the time required to reach a quiesced state and minimizing application downtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the snapshot process waits for all I/O data to be flushed to storage before creating the snapshot, then data consistency is ensured, but the time required to create the snapshot increases significantly

Engineering Contradiction:
Improvedata consistencyVSAvoidsnapshot creation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by initiating host buffer flushes and write cache flushes before the actual snapshot creation begins. This prepares the storage system in advance by moving data from host buffers to write cache and then to storage, so that when the snapshot is created, the data is already in a consistent state without requiring extended waiting time during the snapshot process itself

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If the system performs multiple flush operations (host buffer flush and write cache flush) before snapshot, then application downtime is reduced, but the complexity of the snapshot process increases

Engineering Contradiction:
Improveapplication downtimeVSAvoidsnapshot process complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The flush operation is segmented into two distinct phases: host buffer flush and write cache flush. This segmentation allows the system to progressively move data through different buffer levels, reducing application downtime by starting the flush sequence early while maintaining manageable complexity through clear separation of responsibilities at each flush stage

Inventive Principle:
Principle #1Segmentation

3Speed

If the snapshot process is initiated immediately without flushing I/O data, then the snapshot creation is faster, but the amount of data that needs to be flushed during snapshot increases

Engineering Contradiction:
Improvesnapshot creation speedVSAvoidI/O data in host buffer
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system performs preliminary data movement by flushing I/O data from host buffers to write cache before the snapshot is created. This reduces the quantity of data that remains in host buffers at snapshot time, allowing the snapshot process to proceed faster while maintaining data consistency

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240302989A1Application-consistent snapshots
Publication Date: 2024.09.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20240302989A1 patent drawing
  • US20240302989A1 patent drawing
  • US20240302989A1 patent drawing

AI summary

Described are techniques for application-consistent snapshots. The techniques include determining that a scheduled snapshot of a storage volume is imminent, where the storage volume stores input/output (I/O) data associated with an application that executes on a host server. The techniques further include initiating at least one host buffer flush prior to the scheduled snapshot being performed, where I/O data in a host buffer associated with the application is transferred to a write cache of the storage volume to reduce an amount of I/O data in the host buffer when performance of the scheduled snapshot begins. The techniques further include initiating, after the host buffer flush has completed, a write cache flush to write the I/O data in the write cache to the storage volume. The techniques further include initiating the scheduled snapshot of the storage volume in response to an indication that the write cache flush has completed.