Snapshot Archive Management Using Tree Data Structure Serialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current snapshot archive management systems require significant storage for both storing and recovering data, as they often need to maintain full snapshots and incremental snapshots, leading to increased storage demands.

Innovation Solution

The system employs a tree data structure to organize snapshots, allowing for serialization into a flat set of data that can be archived efficiently, reducing storage needs by storing only the differences and using file offsets to reconstruct the snapshot tree, enabling efficient archiving and retrieval of snapshots.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If incremental snapshots are performed between full snapshots to reduce storage requirements, then storage efficiency is improved, but the amount of storage needed to recover data increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoiddata recovery complexity
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The system performs preliminary actions by maintaining a full snapshot archive and pre-computing index structures that map data blocks to their locations in the archive. This allows the recovery process to directly access needed blocks without sequentially applying multiple incremental snapshots, thus resolving the contradiction between storage efficiency and recovery simplicity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary index structure that acts as a mediator between the stored snapshots and the recovery process. This index contains metadata about data block locations and enables direct access to reconstructed data without requiring the complex sequential application of incremental changes, thereby simplifying recovery while maintaining storage efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If full snapshots and incremental snapshots are maintained to ensure data recoverability, then data reliability is improved, but storage requirements increase

Engineering Contradiction:
Improvedata recoverabilityVSAvoidstorage requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system extracts only the essential elements needed for recovery by maintaining a full snapshot archive and using selective indexing. Instead of storing redundant copies of all snapshot data, the patent extracts and stores only the critical metadata and block location information needed to reconstruct data, thereby maintaining reliability while reducing storage requirements

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies parameter changes by transforming the storage model from keeping multiple complete snapshot copies to maintaining a single full snapshot archive with an optimized index structure. This changes the parameters of data organization and access, enabling reliable recovery with reduced storage by altering how data is indexed and retrieved rather than how it is replicated

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3451141B1Snapshot archive management
Publication Date: 2023.10.04 COHESITY INC
  • EP3451141B1 patent drawingFigure 1
  • EP3451141B1 patent drawingFigure 2A
  • EP3451141B1 patent drawingFigure 2B

AI summary

It is determined to access a desired data of the tree data structure from an archive, where at least a portion of data of a tree data structure is serialized into a first set of flat data and at least a portion of a structure of the tree data structure is serialized to reproduce at least the portion of the structure in a second set of flat data. The second set of flat data is read to reconstitute at least the portion of the structure of the tree data structure. The reconstituted structure of the tree data structure is used to determine a data offset associated with the first set of flat data, wherein the data offset corresponds to the desired data. The desired data is accessed using the data offset associated with the first set of flat data.