Cyclic Linked List for Memory File System Data Cloning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing file systems face inefficiencies in data cloning and modification, particularly in persistent memory environments, due to high overhead in metadata and replication of unmodified data units, and the need for efficient copy-on-write mechanisms in multi-tier systems.

Innovation Solution

A cyclic linked list data structure is used, where each data unit element has two pointers, allowing for efficient read access and modification by excluding unmodified clones from the linked list, and employing split-on-write operations to allocate new data units only for modified clones, reducing storage overhead and metadata.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional file systems replicate data units for cloning, then data integrity and independence are ensured, but storage overhead and metadata complexity increase significantly

Engineering Contradiction:
Improvedata integrityVSAvoidstorage overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple clone references to the same data unit into a shared structure. Instead of replicating data units for each clone, the system uses a single data unit that is referenced by multiple clone entries, reducing storage overhead while maintaining data integrity through the shared reference model.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates lightweight copies of metadata (clone entries) rather than copying the actual data units. Each clone entry contains a reference to the underlying data unit, allowing multiple clones to share the same data without duplicating it, thus reducing storage overhead while preserving clone independence through metadata management.

Inventive Principle:
Principle #26Copying

2Reliability

If traditional file systems create full copies for cloning, then data independence is achieved, but modification efficiency decreases due to unnecessary data replication

Engineering Contradiction:
Improvedata independenceVSAvoidmodification efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the cloning operation into two parts: shared data units and individual clone metadata. The data unit itself is shared among multiple clones, while each clone maintains its own metadata entry that can be independently modified. This segmentation allows efficient modifications to clone metadata without affecting other clones or requiring data replication.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the independence requirement from the data unit level and relocates it to the metadata level. By storing clone-specific information (such as modification status and ownership) in metadata rather than duplicating data units, the system achieves data independence through metadata management while avoiding unnecessary data replication and improving modification efficiency.

Inventive Principle:
Principle #2Taking out (Extraction)

3Speed

If cyclic linked list is used for clone management, then access latency is reduced to O(1), but data structure complexity increases

Engineering Contradiction:
Improveaccess latencyVSAvoiddata structure complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent makes each data unit element universal by equipping it with two pointers that can serve multiple functions: one pointer for cyclic linked list traversal and another for direct access to the data unit. This multi-functionality allows the same data structure to provide both efficient iteration and constant-time access without requiring separate structures, thereby managing complexity while maintaining performance.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent performs preliminary setup by establishing the cyclic linked list structure and dual-pointer configuration during data unit creation. This preliminary action ensures that both the cyclic traversal path and direct access paths are pre-established, enabling O(1) access latency for both operations without requiring complex runtime computations or additional structural modifications.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10983955B2Data unit cloning in memory-based file systems
Publication Date: 2021.04.20 NETAPP INC
  • US10983955B2 patent drawing
  • US10983955B2 patent drawing
  • US10983955B2 patent drawing

AI summary

A data structure used in memory-based file system, method and apparatus using thereof. The data structure comprising: a tree of the nodes comprising tree nodes and leaf nodes, each tree node points to at least one node, each leaf node is associated with a plurality of data unit elements each of which representing a data unit, wherein each data unit element is associated with two pointers, wherein at least one of the two pointers is capable of pointing to a data unit or to a data unit element; and a cyclic linked list of data unit elements representing identical clones of a data unit, wherein the cyclic linked list comprises a first element pointing directly to the data unit, wherein from each element in the cyclic linked list, the data unit can be reached in time complexity of O(1).