Delayed Allocation for Non-Volatile File Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional operating systems face inefficiencies in file creation and storage, particularly due to the use of volatile memory for page caches, which can lead to resource wastage and increased storage fragmentation, as they delay disk allocation until all file data is received, and the adoption of direct access non-volatile memory may disrupt these processes.

Innovation Solution

Implementing an enhanced delayed allocation technique that uses both volatile and non-volatile memory, where the first portion of a file object is stored in a buffer in volatile memory, its size is predicted, and then migrated to non-volatile memory, allowing subsequent portions to be directly stored there, reducing the need for volatile memory occupation and minimizing storage fragmentation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional delayed allocation technique is used with volatile memory for page cache, then file creation performance is improved by buffering reads and writes, but storage fragmentation increases and resource wastage occurs

Engineering Contradiction:
Improvefile creation performanceVSAvoidstorage fragmentation
Core Design Contradiction:
ProductivityVSLoss of substance

Solution Approach 1:

The patent segments the file storage process into two distinct phases: initial buffering in volatile memory (page cache) and subsequent allocation in non-volatile storage. This segmentation allows the system to leverage the speed of volatile memory for immediate file creation while deferring the fragmentation-prone allocation operation to non-volatile storage until the file size is fully known, thereby reducing storage fragmentation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by first buffering the file data in volatile memory before performing the allocation operation in non-volatile storage. The system prepares the file object in the page cache and then migrates it to non-volatile storage only after determining the complete file size, which prevents premature allocation and reduces fragmentation in the non-volatile storage medium.

Inventive Principle:
Principle #10Preliminary action

2Loss of substance

If delayed allocation is used to determine file size before storage, then storage fragmentation is reduced, but time consumption increases due to waiting for file data

Engineering Contradiction:
Improvestorage fragmentationVSAvoidtime consumption
Core Design Contradiction:
Loss of substanceVSLoss of time

Solution Approach 1:

The system performs preliminary buffering of file data in volatile memory immediately upon receipt, before the allocation decision is made. This preliminary action allows the file data to be prepared and staged while the allocation operation is deferred, reducing the waiting time associated with traditional delayed allocation while still benefiting from size-determined allocation to minimize fragmentation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic behavior by making the allocation decision conditional on the complete file data being available in the page cache. The system dynamically transitions from a buffering state to an allocation state only when necessary, optimizing both time and fragmentation considerations based on the actual file size and storage conditions.

Inventive Principle:
Principle #15Dynamics

3Productivity

If page cache is stored in volatile memory, then read and write operations are buffered efficiently, but resource wastage occurs when files are created and removed

Engineering Contradiction:
Improveread and write buffering efficiencyVSAvoidresource wastage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent extracts the file allocation operation from the traditional volatile memory-based delayed allocation process and relocates it to non-volatile storage. This extraction allows the volatile memory page cache to be used more efficiently for actual data buffering while the allocation decision is made separately based on complete file size, reducing resource wastage associated with traditional volatile memory allocation.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces non-volatile storage as an intermediary between the volatile memory page cache and the final file system storage. This intermediary allows the system to buffer reads and writes efficiently in volatile memory while using non-volatile storage for persistent allocation, thereby reducing the resource wastage that occurs when traditional volatile memory systems must allocate and deallocate space frequently.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9588976B1Delayed allocation for a direct access non-volatile file system
Publication Date: 2017.03.07 RED HAT INC
  • US9588976B1 patent drawing
  • US9588976B1 patent drawing
  • US9588976B1 patent drawing

AI summary

Systems and methods for data storage management technology that optimizes the creation and storage of file objects. The method includes: receiving a request to create a file object; storing a first portion of the file object in a buffer in a first data storage; determining a location in a second data storage in view of a predicted size of the file object; migrating the first portion of the file object from the buffer to the location in the second data storage; and in response to receiving a second portion of the file object, storing the second portion in the second data storage without storing the second portion in the buffer in the first data storage.