Distributed Snapshot Sharding for Clustered Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed data management and storage systems face inefficiencies in snapshotting large files, as existing methods fail to effectively utilize increased node numbers, leading to underutilization of resources and suboptimal performance when dealing with very large filesets.

Innovation Solution

The system dynamically adjusts file partitioning or sharding, determining whether to store large files as single files or shards across multiple nodes based on file size, available disk space, and estimated storage time, allowing for parallel fetching and storage across all nodes in the cluster.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If large files are stored as single files in distributed storage systems, then storage simplicity is maintained, but snapshotting performance cannot scale with increased node numbers

Engineering Contradiction:
Improvesnapshotting performanceVSAvoidfile partitioning complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing large files into smaller shards that can be distributed across multiple storage nodes. The file is partitioned into N shards that can be stored in parallel across N different nodes, enabling the snapshotting performance to scale linearly with the number of nodes. This resolves the contradiction by transforming single large files into multiple manageable segments that leverage distributed storage capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic file partitioning where the system automatically determines whether to store a file as a single file or partition it into shards based on file size, available disk space, and estimated storage time. This dynamic adjustment allows the system to adapt to varying conditions and optimize snapshotting performance without imposing fixed complexity on all storage operations.

Inventive Principle:
Principle #15Dynamics

2Loss of time

If all storage nodes are utilized for parallel fetching, then snapshotting time is reduced, but system complexity increases

Engineering Contradiction:
Improvesnapshotting timeVSAvoidcluster coordination complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

By segmenting large files into N shards that can be fetched in parallel across N storage nodes, the system reduces snapshotting time proportionally to the number of nodes utilized. Each node independently fetches its assigned shard, eliminating sequential bottlenecks and achieving linear speedup while maintaining manageable coordination complexity through standardized shard distribution protocols.

Inventive Principle:
Principle #1Segmentation

3Productivity

If file partitioning is performed dynamically, then resource utilization is improved, but processing overhead increases

Engineering Contradiction:
Improveresource utilizationVSAvoidpartitioning decision logic
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts file partitioning decisions based on real-time conditions including file size, available disk space across nodes, and estimated storage time. This dynamic approach optimizes resource utilization by partitioning only when beneficial, avoiding unnecessary processing overhead for small files or scenarios where single-file storage is more efficient.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11226873B2Scaling single file snapshot performance across clustered system
Publication Date: 2022.01.18 RUBRIK INC
  • US11226873B2 patent drawing
  • US11226873B2 patent drawing
  • US11226873B2 patent drawing

AI summary

In some embodiments, there is provided a method for operating a data management system. The method comprising certain operations including determining a schedule for backing up a first virtual machine, configuring a job scheduler to implement the schedule for backing up the first virtual machine, initiating a snapshot process for acquiring a snapshot of the first virtual machine, determining a type of snapshot to be stored, and determining whether a full image of the first virtual machine is required to be stored in order to store the snapshot of the first virtual machine.