VM Snapshot Sharding via Asynchronous I/O Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing methods for generating snapshots of virtual machines are time-consuming and resource-intensive, particularly due to the sequential nature of data retrieval, which can lead to prolonged processing times and hardware resource bottlenecks.

Innovation Solution

A data management system that employs asynchronous input/output operations, sharding of virtual machine data, and a queue-based architecture to manage and order snapshot shards, enabling concurrent processing and efficient storage of snapshots while enforcing SSL and utilizing a lightweight VDDK server for improved stability and concurrency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If sequential snapshot generation is used, then data consistency is ensured, but snapshot generation time increases significantly

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

Solution Approach 1:

The virtual machine disk is divided into multiple shards that can be processed independently and concurrently. Each shard is a separate data unit that can be snapshotted in parallel, transforming a sequential process into a concurrent one while maintaining data integrity through proper reassembly using offset-slot mapping.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-establishing the offset-slot mapping before snapshot generation and maintaining receive token queues in advance. This preparation enables the system to handle asynchronous shard arrivals efficiently without compromising data consistency, as the reassembly framework is already in place.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If sequential data retrieval is used, then system complexity is reduced, but resource utilization decreases

Engineering Contradiction:
Improvesystem complexityVSAvoidresource utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system dynamically adapts to asynchronous shard arrivals by maintaining flexible data structures (offset-slot mapping and receive token queues) that can accommodate out-of-order arrivals. This dynamic approach allows concurrent processing while managing complexity through well-defined data structures rather than rigid sequential control.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The offset-slot mapping and receive token queues act as intermediaries between the asynchronous shard retrieval process and the final snapshot assembly. These intermediary structures buffer and organize data from multiple concurrent sources, enabling high resource utilization while keeping the overall system architecture manageable.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If concurrent shard processing is implemented, then snapshot generation speed increases, but managing shard ordering becomes more complex

Engineering Contradiction:
Improvesnapshot generation speedVSAvoidshard ordering management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Each shard carries its own positioning information (offset and slot identifiers) that enables self-identification and self-placement in the correct position within the assembled snapshot. This self-service mechanism eliminates the need for complex external sorting logic, as shards automatically know where they belong in the final reconstructed image.

Inventive Principle:
Principle #25Self-service

4Reliability

If more hardware resources are allocated for snapshot processing, then snapshot quality improves, but resource availability for other tasks decreases

Engineering Contradiction:
Improvesnapshot qualityVSAvoidresource availability
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system maintains continuous useful action by processing multiple shards concurrently rather than sequentially pausing other tasks. By utilizing all available hardware resources simultaneously for snapshot generation through parallel shard processing, the system improves snapshot quality and speed without preventing other tasks from utilizing resources during the same time period.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11960920B2Asynchronous input and output for snapshots of virtual machines
Publication Date: 2024.04.16 RUBRIK INC
  • US11960920B2 patent drawing
  • US11960920B2 patent drawing
  • US11960920B2 patent drawing

AI summary

A data management system comprises: a storage appliance configured to store a snapshot of a virtual machine; and one or more processors in communication with the storage appliance. The one or more processors are configured to perform operations including: identifying a plurality of shards of the virtual machine; requesting a snapshot of each of the plurality of shards; receiving the shards asynchronously; ordering the received snapshot shards sequentially into a results queue; and storing a single snapshot of the virtual machine based on the ordered snapshot shards. Operations may further include maintaining a flow control queue that limits the number of snapshot shards requested.