Distributed File System Storage Allocation Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current disk and distributed file systems face inefficiencies in storage space allocation, leading to significant random input/output activity and metadata inconsistencies, particularly due to the need for immediate space allocation decisions during system calls, which result in over-allocation and failure to reclaim storage space after deletions.

Innovation Solution

A method and apparatus that process input/output activity at flush time to determine the current state of files, combine storage space allocation decisions, and execute optimized file system operations to modify storage space, including removing allocation decisions for deleted data and coalescing log directory records for sequential writing, thereby optimizing storage space usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If storage space allocation decisions are made at system call time for each write operation, then immediate space allocation is achieved, but significant random input/output activity and computational overhead occur

Engineering Contradiction:
Improveresponse speedVSAvoidinput/output efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent batches multiple system calls and their associated storage allocation decisions together, processing them in advance as a group rather than individually. This preliminary batching reduces the frequency of random I/O operations while still maintaining timely response to storage needs, resolving the contradiction between immediate response and I/O efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent combines multiple separate storage allocation decisions into a single batched operation. By merging individual system calls into batches, the system reduces the total number of random I/O operations and computational overhead while maintaining the necessary allocation functionality, thus improving productivity without sacrificing essential response capability.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If storage space is over-allocated at the end of files in anticipation of future writes, then future writes can consume pre-allocated space, but storage space is wasted when files are deleted

Engineering Contradiction:
Improvewrite operation efficiencyVSAvoidstorage space waste
Core Design Contradiction:
ProductivityVSLoss of substance

Solution Approach 1:

The patent implements a feedback mechanism where the system monitors file deletion operations and adjusts storage allocation accordingly. When files are deleted, the system receives feedback about the freed space and modifies future allocation decisions to avoid over-allocating space for files that may be deleted, thus reducing storage waste while maintaining write efficiency for active files.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent makes storage allocation dynamic by adjusting allocation strategies based on file lifecycle patterns. Instead of static over-allocation, the system dynamically modifies allocation behavior based on whether files persist or are deleted, optimizing the balance between write efficiency and storage utilization by adapting to actual file usage patterns.

Inventive Principle:
Principle #15Dynamics

3Reliability

If metadata updates are journaled for every file data and metadata space allocation decision, then data consistency is maintained, but the number of journal writes and computational overhead increase significantly

Engineering Contradiction:
Improvedata consistencyVSAvoidjournal operation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent combines multiple individual metadata updates and journal writes into batched operations. By merging several allocation decisions and their corresponding journal entries into a single batched journal write, the system maintains data consistency through journaling while significantly reducing the total number of journal operations and associated computational overhead.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent performs preliminary batching of metadata updates before journaling them to disk. This preliminary consolidation allows the system to maintain consistency through journaling while reducing the frequency and overhead of journal write operations, as multiple logical updates are prepared in memory and then written as a single journal entry.

Inventive Principle:
Principle #10Preliminary action

4Loss of substance

If log-based file systems reclaim storage space after file deletions, then storage utilization is improved, but metadata inconsistency issues arise in block-based file systems

Engineering Contradiction:
Improvestorage space reclamationVSAvoidmetadata consistency
Core Design Contradiction:
Loss of substanceVSReliability

Solution Approach 1:

The patent introduces a batched processing intermediary that coordinates storage space reclamation with metadata update operations. This intermediary ensures that when storage space is reclaimed after file deletions, the associated metadata updates are properly coordinated and consistent, preventing the metadata inconsistency issues that arise in traditional block-based file systems while still achieving storage reclamation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8392479B1Method and apparatus for optimizing storage space allocation for computer data
Publication Date: 2013.03.05 ARCTERA US LLC
  • US8392479B1 patent drawing
  • US8392479B1 patent drawing
  • US8392479B1 patent drawing

AI summary

A method and apparatus for optimizing storage space allocations, using at least one processor, for computer data in distributed file systems is described. In one embodiment, the method includes processing input/output activity that is associated with computer data to determine a current state of at least one file in a distributed file system, at flush time, combining various storage space allocation decisions applied over at least one network protocol to determine a plurality of file system operations that define storage space, based on the current state of the at least one file, for the computer data and executing the plurality of file system operations on the computer data stored in the storage space.