Filename Cache with Variable-Length Header for Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing filesystems are wasteful of memory space when handling short filenames and can result in ambiguous hits due to truncation of long filenames, as they often employ a fixed byte allocation for filename caching.

Innovation Solution

A filesystem with a filename cache that includes a filename header section containing information such as filename length, unique file identifiers, and indexing into a hash table, allowing efficient searching and management of filenames, including a 'next cache location' field to avoid unnecessary checks and a 'missing' field to indicate filenames not on the system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a fixed byte allocation is used for each filename in the filename cache, then the filename cache structure is simple and consistent, but memory space is wasted when filenames are short and ambiguous hits occur when filenames are long

Engineering Contradiction:
Improvefilename cache structureVSAvoidmemory space utilization
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The filename cache entry is segmented into multiple fields: a fixed-size filename header section containing metadata (length, hash value, status flags) and a variable-size filename data section. This segmentation allows the fixed header to maintain structural consistency while the variable data section adapts to different filename lengths, eliminating memory waste for short filenames and preventing truncation for long filenames.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different parts of the filename cache entry serve different functions with different requirements. The header section uses fixed allocation for efficient access and consistency, while the filename data section uses variable allocation to match the actual filename length. This local differentiation optimizes both memory utilization and access efficiency.

Inventive Principle:
Principle #3Local quality

2Ease of operation

If a fixed byte allocation is used for each filename in the filename cache, then the cache management is simplified, but ambiguous hits occur when long filenames are truncated

Engineering Contradiction:
Improvecache managementVSAvoidfilename lookup accuracy
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The filename header section stores the actual length of the filename before it is processed or compared. This preliminary storage of length information allows the system to verify complete filename matches without truncation, ensuring lookup accuracy while maintaining simplified cache management through the structured header format.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The filename header section acts as an intermediary between the fixed cache structure and the variable filename data. It contains metadata that mediates the lookup process by providing length information and hash values, enabling accurate comparison without direct manipulation of the variable-length filename data, thus maintaining both simplicity and accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If the entire contents of every block are read to locate a file, then the filesystem ensures complete data access, but the lookup time increases significantly

Engineering Contradiction:
Improvedata access completenessVSAvoidfile lookup time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The filename header section pre-stores hash values and length information for each filename in the cache. When a lookup is needed, the system first compares these pre-computed header values against the search key, providing a quick filter that eliminates the need to read and compare entire file block contents, thus reducing lookup time while maintaining access reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The essential identifying information (hash value, length, status flags) is extracted from the complete filename and stored in the compact header section. This extraction creates a simplified representation that can be quickly compared during lookups, separating the critical identification function from the full filename data, thereby reducing lookup time without compromising data access completeness.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8122178B2Filesystem having a filename cache
Publication Date: 2012.02.21 MALIKIE INNOVATIONS LTD
  • US8122178B2 patent drawing
  • US8122178B2 patent drawing
  • US8122178B2 patent drawing

AI summary

A system comprising a processor, a data storage device that is accessible by the processor, and filesystem software that is executable by the processor to organize files on the data storage device are provided. The filesystem software is executable to maintain a filename cache comprising filename entries. The filename entries may include a filename header section and each filename entry identifies a filename of a corresponding file.