Logical Object Deletion via Block-Level OID Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing file systems face challenges in maintaining data consistency and preventing memory leaks during object deletion in the event of a system interruption, as interruptions can leave data structures in an invalid state and require time-consuming consistency checks or increase latency with journaling.

Innovation Solution

A method and system that, upon system restart, identify and complete interrupted delete requests by reading and freeing physical blocks linked to the logical objects using object identifiers stored in those blocks, allowing for idempotent deletion without the need for consistency checks or journaling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If consistency checks (fsck, CHKDSK) are performed after system interruption, then file system consistency is restored, but system recovery time and resource consumption increase significantly

Engineering Contradiction:
Improvefile system consistencyVSAvoidsystem recovery time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by writing the object identifier to each physical block before data is written. This pre-prepared metadata allows the system to quickly identify and recover deleted blocks after interruption without performing time-consuming consistency checks across the entire file system.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If journaling is used to maintain consistency during deletion, then file system consistency is improved, but operation latency increases and additional I/O operations are required

Engineering Contradiction:
Improvefile system consistencyVSAvoidoperation latency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the essential consistency-maintenance function from the journaling mechanism by storing only the object identifier directly in each physical block. This eliminates the need for separate journal files and additional I/O operations, as the identifier is immediately available in the block itself for recovery purposes.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If traditional deletion methods are used without block-level identification, then deletion speed is maintained, but memory leaks occur when system interruption prevents complete deletion

Engineering Contradiction:
Improvedeletion speedVSAvoidmemory consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements self-service by embedding the object identifier directly within each physical block. This allows the block to identify itself as belonging to a deleted object during recovery, enabling automatic and complete cleanup without requiring complex external tracking structures that could fail during interruption.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8924664B2Logical object deletion
Publication Date: 2014.12.30 INFINIDAT LTD
  • US8924664B2 patent drawing
  • US8924664B2 patent drawing
  • US8924664B2 patent drawing

AI summary

The presently disclosed subject matter includes a method and system for enabling the deletion of logical objects characterized by an object identifier (OID). Upon restart following a system interruption, one or more logical objects are identified, each object being addressed by an interrupted delete request. For each identified logical object performing a deletion, the deletion including: reading one or more physical blocks stored in a physical storage space, wherein the one or more physical blocks were linked to the identified logical object before the system interruption, each of the physical blocks includes an OID stored therein indicating a logical object currently linked to the respective physical block; obtaining OIDs stored respectively in the one or more physical blocks; and freeing those physical blocks from among the one or more physical blocks, which store an OID identical to the respective OID of the identified logical object.