Non-Volatile Memory Version Tracking via Object Table Indexing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data versioning techniques in non-volatile memory, such as flash memory, lack efficient methods for transactional versioning at the data element level and global snapshot versioning, which are essential for concurrency control, error recovery, and collaborative data management.

Innovation Solution

The approach involves creating an object key associated with data objects, generating an index for an object table, and storing version numbers in conjunction with data objects in non-volatile memory, using a flash memory controller to manage new data versions and track previous versions through linked lists, allowing for correct version retrieval and storage recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If version control is implemented in non-volatile memory, then data integrity and recovery capabilities are improved, but device complexity increases due to the need for managing multiple versions and write generations

Engineering Contradiction:
Improvedata integrityVSAvoidversion management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments version tracking into two distinct components: (1) write generation counters stored in the non-volatile memory itself that increment with each write operation, and (2) version metadata stored in a separate object table in volatile memory. This segmentation allows the NVM to maintain reliability through simple counter increments while the complex version management logic resides in the object table, reducing the complexity burden on the NVM structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary object table that acts as a mediator between the application layer and the version control mechanism. This object table stores version metadata and manages the mapping between object identifiers and their corresponding write generations. By using this intermediary structure, the system achieves reliable version tracking without embedding complex version management logic directly in the NVM, thus balancing reliability improvement with complexity management.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If transactional versioning at data element level is implemented, then concurrency control capability is improved, but memory overhead increases due to storing multiple versions

Engineering Contradiction:
Improveconcurrency control capabilityVSAvoidmemory overhead
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent applies asymmetry by treating different data elements differently in terms of versioning. Instead of maintaining full copies of all data elements for every version, the system uses write generation counters that are asymmetric in nature: they provide complete version information for tracking purposes but store minimal actual data. This asymmetric approach enables concurrency control through version metadata while avoiding the memory overhead of storing multiple complete data element copies.

Inventive Principle:
Principle #4Asymmetry

Solution Approach 2:

The patent uses selective copying by storing only essential version metadata (write generation counters and object identifiers) rather than copying entire data elements. The version information is copied and tracked in the object table, while the actual data elements remain in their primary storage locations. This copying strategy enables transactional versioning and concurrency control without incurring the full memory overhead of duplicating complete data versions.

Inventive Principle:
Principle #26Copying

3Measurement precision

If write generation counters are stored in non-volatile memory, then version tracking precision is improved, but write operation time increases due to additional counter increments

Engineering Contradiction:
Improveversion tracking precisionVSAvoidwrite operation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-allocating and initializing write generation counters in the non-volatile memory before actual write operations begin. The counters are prepared in advance at power-up or initialization, so that during normal write operations, the system only needs to increment existing counters rather than creating new version tracking structures. This preliminary preparation reduces the time penalty of version tracking during write operations while maintaining precise version information.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8874515B2Low level object version tracking using non-volatile memory write generations
Publication Date: 2014.10.28 SANDISK TECHNOLOGIES LLC
  • US8874515B2 patent drawing
  • US8874515B2 patent drawing
  • US8874515B2 patent drawing

AI summary

Data versioning in a non-volatile memory. An object key associated with a data object is created. An index into an object table is generated using the object key. A version number is stored in conjunction with the data object stored in the non-volatile memory. In an object linked-list, the object key and the location information of the data object in the non-volatile memory are stored. A record associated with the data object is created in an object table. The record includes an index, a reference to the object linked-list, and the version number. The index is generated based on the object key.