Flash Recovery Using Transaction Log Checkpoints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current flash memory systems require scanning all sectors during boot-up to determine the state and recover from power failures, which becomes time-consuming as flash parts grow, impacting boot-up time.

Innovation Solution

Implementing a transaction log with checkpoints to record operations performed before shutdown, allowing for efficient recovery by processing only the sectors specified in the log after the latest checkpoint during boot-up, rather than scanning all sectors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all sectors are scanned during boot-up to determine flash memory state and recover from power failures, then recovery reliability is improved, but boot-up time increases significantly

Engineering Contradiction:
Improverecovery reliabilityVSAvoidboot-up time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The flash memory is divided into two functional segments: a transaction log region that records all operations sequentially, and a data region that stores actual data. The transaction log is further segmented into individual log entries that can be processed independently. This segmentation allows the system to track state changes without scanning the entire flash memory, resolving the contradiction between comprehensive recovery and fast boot-up.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by recording all flash operations in the transaction log before they are executed. Each log entry captures the operation type, target sector, and other necessary information in advance. During boot-up, only the transaction log needs to be scanned to reconstruct the flash state, eliminating the need to scan all data sectors and significantly reducing boot-up time while maintaining recovery reliability.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If flash memory size increases to provide more storage, then storage capacity is improved, but boot-up time increases due to longer scanning required

Engineering Contradiction:
Improvestorage capacityVSAvoidboot-up time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The invention extracts the state tracking function from the main data storage area and places it in a separate transaction log region. This extracted log contains only the metadata necessary for recovery (operation types, target sectors, timestamps) without the actual data content. During boot-up, only this small extracted log needs to be scanned regardless of flash memory size, allowing storage capacity to scale without increasing boot-up time.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system adds a new dimension to flash memory organization by introducing the transaction log as a separate operational layer. Instead of scanning the traditional single dimension of data sectors, the system scans the transaction log dimension which contains compressed operational history. This dimensional change decouples boot-up time from storage capacity, as the log size grows much slower than total storage capacity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS7979626B2Flash recovery employing transaction log
Publication Date: 2011.07.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7979626B2 patent drawing
  • US7979626B2 patent drawing
  • US7979626B2 patent drawing

AI summary

A transaction log for flash recovery includes a chained sequence of blocks specifying the operations that have been performed, such as a write to a sector or an erase to a block. Checkpoints are performed writing the entire flash state to flash. Once a checkpoint is performed, all of the log entries prior to the checkpoint are deleted and the log processing on recovery begins with the latest checkpoint. If the system is able to safely shutdown, then a checkpoint may be performed before the driver unloads, and on initialization, the entire persisted flash state may be loaded into the flash memory with a minimal amount of flash scanning. If a power failure occurs during system operation, then on the next boot-up, only the sectors or blocks specified in the log entries after the latest checkpoint have to be scanned, rather than all the sectors on the part.