Non-overwrite Storage Segment Reuse via Unsafe Free List
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Non-overwrite storage systems, such as log-structured file systems, face challenges in managing free space efficiently to maintain high storage throughput, especially during system crashes, where unscheduled synchronization operations are costly and impact performance.
Innovation Solution
A non-overwrite storage system with a controller that employs an unsafe free segments list (UFSL) to manage storage resources by copying page data from used segments, writing it to free segments, indexing the UFSL, and preventing reuse until cleared during scheduled synchronization, thereby optimizing storage segment reuse and reducing the need for costly unscheduled synchronization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If unscheduled synchronization operations are performed to prevent data loss during system crashes, then data reliability is improved, but storage throughput deteriorates due to costly synchronization operations
Solution Approach 1:
The system performs preliminary actions by copying page data from used segments to free segments before system crashes occur. The controller proactively creates redundant copies of data in safe locations, so that if a crash occurs, the copied data can be used for recovery without needing to perform expensive unscheduled synchronization operations. This preliminary data duplication ensures reliability while avoiding the throughput penalty of crash-time synchronization.
Solution Approach 2:
The controller creates copies of page data from used segments and stores them in free segments. This copying mechanism allows the system to maintain data reliability by having redundant copies available for crash recovery, while the copied data can be reused for future writes, reducing the need for frequent synchronization operations and thereby maintaining storage throughput.
2Productivity
If free storage segments are reused to improve storage throughput, then productivity is improved, but data reliability deteriorates due to potential data loss during system crashes
Solution Approach 1:
The controller acts as an intermediary between used segments and free segments by maintaining copies of page data. When free segments are reused for new writes, the controller ensures that valid data has been copied to safe locations first. This intermediary copying mechanism allows aggressive segment reuse for throughput while protecting reliability by ensuring data redundancy before reuse occurs.
Solution Approach 2:
Before reusing free storage segments for new writes, the controller performs preliminary copying of valid page data from used segments to ensure data safety. This preliminary action ensures that even if the source segments are later overwritten or lost due to crash recovery, the data remains preserved in the copied locations, enabling safe segment reuse without compromising reliability.
3Reliability
If unscheduled synchronization operations are performed to ensure pointer updates, then data reliability is improved, but use of energy deteriorates due to costly synchronization operations
Solution Approach 1:
The controller uses copying of page data as an energy-efficient alternative to unscheduled synchronization operations. By maintaining redundant copies of data in free segments, the system ensures reliability without needing to perform energy-intensive pointer updates and synchronization procedures during crash recovery scenarios.
Solution Approach 2:
The invention extracts the essential reliability function from expensive unscheduled synchronization operations by implementing a separate copying mechanism. The controller extracts valid page data from used segments and stores copies in free segments, separating the data preservation function from the expensive synchronization process, thereby maintaining reliability while reducing energy consumption.
Data Source
AI summary
A non-overwrite storage system, such as a log-structured file system, that includes a non-volatile storage having multiple storage segments, a volatile storage having an unsafe free segments list (UFSL), and a controller for managing storage resources of the non-volatile storage. The controller can be configured to copy page data from used segment(s) of the non-volatile storage, write the copied page data to free segment(s) of the non-volatile storage, index the UFSL with indications of the used segment(s), and thereafter prevent reuse of the used segment(s) while the indications of the used segment(s) remain indexed in the UFSL. In some implementations, the non-overwrite storage system may be associated with flash storage system, and a flash controller can be configured perform a flush track cache operation to clear the indications of the used segment(s) from the UFSL, to enable reuse of segment(s) that were previously indexed to the UFSL.


