File System Truncation Using Delegated Reference Counts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional file systems face challenges in efficiently truncating files, leading to prolonged processing times and performance issues due to the need to traverse and deallocate large numbers of file system blocks, which can lock storage systems and impact other operations.

Innovation Solution

The method involves creating an internal snapshot copy of a file, using delegated reference counts to identify uniquely allocated file system blocks, and reporting these as available storage space before deallocation, allowing for asynchronous background deallocation, thus separating the process of identifying blocks for deallocation from their actual freeing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If conventional file systems traverse and deallocate file system blocks to truncate files, then storage space is freed, but processing time increases and storage system performance deteriorates

Engineering Contradiction:
Improvestorage space freedVSAvoidprocessing time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent applies preliminary action by reporting storage space as available immediately when truncation is requested, before the actual deallocation of file system blocks occurs. The system identifies the amount of space that will be freed and makes it available for new allocations right away, while the actual deallocation of the truncated blocks happens asynchronously in the background. This resolves the contradiction by decoupling the space availability reporting from the time-consuming deallocation process.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If conventional file systems deallocate file system blocks synchronously, then storage space is freed, but other storage operations are impacted due to system locking

Engineering Contradiction:
Improvestorage space freedVSAvoidstorage operation throughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent applies segmentation by dividing the file truncation process into two independent phases: an immediate phase that identifies and reports available storage space, and an asynchronous background phase that performs the actual deallocation of file system blocks. This segmentation allows the storage system to report space availability without being blocked by the lengthy deallocation process, thereby maintaining high throughput for other storage operations while still freeing the required space.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If conventional file systems traverse file system blocks to identify deallocatable space, then accurate space reclamation is achieved, but I/O performance deteriorates

Engineering Contradiction:
Improvestorage space reclamation accuracyVSAvoidI/O performance
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent extracts the space identification function from the deallocation process. Instead of traversing file system blocks to identify deallocatable space, the system calculates the amount of space that will be freed based on the truncation request parameters. This extracted identification mechanism immediately determines available space without I/O operations, while the actual block deallocation (which requires traversal) is performed asynchronously in the background, thus preserving I/O performance while maintaining accurate space reclamation.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11847095B1Managing truncation of files of file systems
Publication Date: 2023.12.19 EMC IP HLDG CO LLC
  • US11847095B1 patent drawing
  • US11847095B1 patent drawing
  • US11847095B1 patent drawing

AI summary

A method is used in managing truncation of files of file systems. A request is received to delete a portion of a file of a file system. The file system includes a plurality of files. Metadata of the file is evaluated for determining a number of file system blocks associated with the portion of the file that are available for de-allocation. Storage space associated with the file system blocks is reported as available storage space to a user of the file.