Non-overwrite Storage Segment Reuse via Unsafe Free List

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata reliabilityVSAvoidstorage throughput
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improvestorage throughputVSAvoiddata reliability
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedata reliabilityVSAvoiduse of energy
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #26Copying

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9213634B2Efficient reuse of segments in nonoverwrite storage systems
Publication Date: 2015.12.15 APPLE INC
  • US9213634B2 patent drawing
  • US9213634B2 patent drawing
  • US9213634B2 patent drawing

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.