Clone Snapshot Splitting via Generation-Based Block Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge in filesystem management arises when splitting a clone from its parent snapshot, as sharing data blocks leads to exhaustion of available space due to multiple copies of the same block being needed, especially when each occurrence of a block is moved to a new location.

Innovation Solution

A method is implemented to create a mapping of source data blocks from the parent object to destination data blocks in the clone object, comparing creation generations, isolating inherited data blocks based on differing generations, and updating destination data blocks to manage and duplicate only necessary blocks, thereby avoiding unnecessary duplication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If each occurrence of a shared data block is moved to a new location during clone splitting, then the clone and its snapshots achieve independence from the parent snapshot, but available space in the filesystem is exhausted due to multiple copies of the same block being needed

Engineering Contradiction:
Improveclone independenceVSAvoidfilesystem space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the data block management by creating distinct ownership zones: blocks with generation matching the isolate generation are marked as isolated and owned by the clone, while blocks with different generations remain shared. This segmentation allows independent management of clone-specific blocks without duplicating all blocks, resolving the space exhaustion problem while maintaining clone independence.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of block identification by introducing generation numbers as a distinguishing parameter. By comparing the creation generation of source blocks with the isolate generation of destination blocks, the system can identify which blocks need isolation without copying all blocks. This parameter-based differentiation enables selective duplication, preventing filesystem space exhaustion while ensuring clone independence.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If all shared data blocks are duplicated to new locations during clone splitting, then complete independence is achieved, but the complexity of the duplication process increases significantly

Engineering Contradiction:
Improveclone independenceVSAvoidduplication process
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies partial action by duplicating only the necessary subset of blocks - specifically those where the source block's creation generation matches the destination block's isolate generation. This selective approach achieves the required clone independence without the excessive complexity of duplicating all shared blocks, reducing processing overhead while maintaining reliability.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

By introducing generation number comparison as a filtering parameter, the patent simplifies the duplication process from a brute-force approach to a targeted operation. The generation parameter acts as a filter that identifies exactly which blocks need duplication, significantly reducing process complexity while ensuring complete clone independence for the necessary blocks.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If data blocks are shared between clone and parent snapshot to save space, then filesystem space efficiency is improved, but the ability to split the clone from the parent snapshot is compromised

Engineering Contradiction:
Improvefilesystem spaceVSAvoidclone splitting capability
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent prepares for future clone splitting by establishing generation numbers at the time of block creation and snapshot/clone formation. This preliminary tagging of blocks with generation information enables efficient identification of blocks that need to be isolated during splitting operations, allowing space-efficient sharing during normal operation while maintaining the capability to split when needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The generation number acts as an intermediary parameter that enables both space-efficient sharing and future splitting capability. By using generation numbers as a mediator between the clone and parent snapshot relationships, the system can maintain shared blocks for space efficiency while having the information needed to selectively isolate blocks when splitting is required, thus preserving adaptability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9996424B2Splitting a clone having snapshots from a parent
Publication Date: 2018.06.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9996424B2 patent drawing
  • US9996424B2 patent drawing
  • US9996424B2 patent drawing

AI summary

A method, system, and program product is provided for splitting a clone object from a parent object when the clone object includes at least one snapshot. A mapping is created of a source data block from the parent object to a destination data block in the clone object. A creation generation in the mapped source data block is compared to an isolate generation in the destination data block in the clone object. Inherited data blocks in the clone object are isolated from the parent object, based on the creation generation differing from the isolate generation. The destination block is updated with the mapping information.