Fault-Tolerant File System for Flash Memory Write Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern consumer electronic devices, particularly those using flash memory, face issues with slow write operations and reduced lifespan due to frequent power interruptions, which threaten the integrity of stored data.
Innovation Solution
A fault-tolerant file system is implemented using a transacted state and working state representation, minimizing physical writes through a change list and delta block management, and optimizing storage by storing non-duplicative metadata, thereby maintaining data integrity and reducing the number of block writes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If writes are performed frequently to flash memory to update file system data, then data integrity is maintained, but the lifespan of the memory is reduced and write operations become slower
Solution Approach 1:
The patent implements a journaling file system where a journal area is pre-allocated and used to record file system operations before they are committed to the main file system. This preliminary action allows the system to prepare changes in a safe environment, reducing the need for repeated writes to the main memory structure and thereby extending memory lifespan while maintaining data integrity.
Solution Approach 2:
The patent extracts the file system metadata and operation logs from the main file system structure and places them in a separate journal area. This separation allows write operations to be directed to the journal rather than repeatedly modifying the main file system structure, reducing wear on flash memory blocks while ensuring data integrity through the journal's transactional properties.
2Reliability
If frequent writes are performed to maintain file system consistency, then data integrity is preserved, but performance deteriorates due to slow write speeds
Solution Approach 1:
The journaling mechanism performs preliminary recording of file system operations in a structured format that enables efficient batch processing. By pre-formatting journal entries with transaction identifiers and operation types, the system can process multiple operations more efficiently than performing individual writes, thereby improving overall write performance while maintaining file system integrity.
Solution Approach 2:
The patent combines multiple file system operations into single journal transactions where possible. By merging related operations into unified write sequences, the system reduces the total number of separate write operations to flash memory, improving performance while ensuring that either all operations in a transaction are committed or none are, thus preserving file system integrity.
3Reliability
If power interruption protection is implemented through redundant storage, then data integrity during power failure is maintained, but the number of write operations increases
Solution Approach 1:
The patent extracts the critical integrity-maintenance function into a dedicated journal area, separating it from the main file system storage. This extraction allows the system to implement power failure protection through structured journal logging rather than through redundant storage of entire file system structures, reducing the total write operation count while maintaining power failure tolerance.
Solution Approach 2:
The patent changes the parameter of data protection from redundant storage (copying data multiple times) to transactional logging (recording operations sequentially with integrity checks). This parameter change reduces the write operation count because the journal records each operation once in a structured format with built-in integrity verification, rather than requiring multiple redundant writes.
Data Source
AI summary
A device and method for providing a fault-tolerant file system. The fault-tolerant file system attempts to minimize the number of writes used when updating file system data structures. In one embodiment, file system data, including file system metadata, is stored in a fault-tolerant tree including a working state and a transacted state. In one embodiment, a change list is used to track blocks that have been updated, instead of cascading updates to leaf nodes up the tree, and a delta block is used to further minimize block updates when adding or removing nodes from the tree. In one embodiment, a Q-Block is used to prevent cycles when adding and removing free blocks from an allocation tree. Metadata values are stored in the tree in a way that allows certain metadata values to be inferred when not present in the tree, thus conserving space and lowering query time.


