Variable Logical Storage Block Size Filesystem
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing filesystems are not optimized for various types of file data as they employ fixed logical and physical block sizes, which compromises the efficiency of accessing both long and short access streams.
Innovation Solution
A filesystem that organizes data storage into logical storage blocks of different sizes based on file type, using a hole map to allocate storage areas with varying block sizes, allowing for efficient reading and writing of different file types by identifying file types through filenames or embedded information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If fixed logical storage block size is employed for all data types, then filesystem compatibility and simplicity are maintained, but access efficiency for different file types is compromised
Solution Approach 1:
The filesystem dynamically adjusts logical storage block sizes based on file type characteristics. The system transitions from a static fixed block size to a dynamic variable block size system where block sizes are selected from multiple predefined options (e.g., 512 bytes, 1 KB, 2 KB, 4 KB, 8 KB, 16 KB, 32 KB, 64 KB) depending on the identified file type, thereby optimizing access efficiency without requiring a completely new filesystem architecture
Solution Approach 2:
Different logical storage block sizes are assigned to different file types based on their specific access patterns and characteristics. For example, small files may use smaller block sizes while large sequential files use larger block sizes, making each storage operation locally optimized for its specific file type rather than using a uniform block size for all operations
2Speed
If larger logical storage blocks are used, then access speed for large files is improved, but storage waste for small files increases
Solution Approach 1:
The system changes the parameter of logical storage block size based on file type identification. By analyzing file characteristics and selecting appropriate block sizes from a range of options, the system achieves faster access speeds for large files while minimizing storage waste for small files, effectively adapting the block size parameter to match the actual data access patterns
3Loss of substance
If smaller logical storage blocks are used, then storage efficiency for small files is improved, but access speed for large files decreases
Solution Approach 1:
The filesystem implements dynamic block size selection that adapts to file size and access patterns. Small files are automatically assigned smaller logical storage blocks to improve storage utilization, while large files are assigned larger blocks to enhance access speed, with the system dynamically adjusting the block size parameter based on real-time file type identification
4Productivity
If variable logical storage block sizes are implemented, then optimization for specific file types is achieved, but filesystem complexity and overhead increase
Solution Approach 1:
The filesystem software is segmented into distinct functional modules: a file type identification module that analyzes file characteristics, a block size selection module that chooses appropriate logical storage block sizes from predefined options, and a storage management module that handles the actual data operations. This segmentation allows the system to achieve file type optimization while keeping each module's complexity manageable and well-defined
Data Source
Figure 1
Figure 2
Figure 3~5
AI summary
A system is set forth that includes 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. The filesystem software is executable to organize files on the data storage device in storage areas having different logical storage block sizes that are dependent on file type. In one implementation, the filesystem software is executable to generate a hole map associated with the data storage device. The hole map comprises data indicative of a logical storage block size for each of a plurality of storage areas of the data storage device and, optionally, data indicative of a degree of usage for each of the plurality of storage areas. The filesystem may identify the file type using a filename of the file and/or embedded file information.