Shared Log-Structured Datastore for Flash Memory Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory devices, due to their unique characteristics such as page-oriented operations and high wear from erase operations, require specialized synchronization mechanisms and data storage strategies that differ from traditional disk-based systems, posing challenges for concurrency control and data persistence in transactional systems.

Innovation Solution

A concurrency control system using a shared log of indexed transaction records with multi-version data structures and metadata for versioning, dependencies, and node pointers, which enables efficient processing and melding of transactions, ensuring consistency and minimizing synchronization overhead in distributed systems and shared-memory multiprocessors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If flash memory is treated as an append-only medium with log-structured file system, then wear from erase operations is reduced, but update-in-place behavior is lost

Engineering Contradiction:
Improveflash memory durabilityVSAvoidupdate-in-place capability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent segments the storage system into a log-structured append-only flash storage layer and a virtual file system layer. The log stores data in immutable sequential segments, while the virtual file system provides the illusion of update-in-place by managing pointers to log entries. This segmentation allows flash memory to operate in its optimal append-only mode while presenting a traditional file system interface to users.

Inventive Principle:
Principle #1Segmentation

2Speed

If B-trees are used for flash storage, then sequential access benefits are obtained, but random read/write performance is reduced

Engineering Contradiction:
Improvesequential access speedVSAvoidrandom read/write throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent implements a dynamic log-structured file system that adapts to different access patterns. Rather than using a static B-tree structure, the system dynamically manages log segments and uses wear-leveling algorithms to distribute writes across multiple physical blocks. This dynamic approach optimizes for flash memory's strengths in sequential writes while maintaining acceptable random access performance through intelligent data layout and caching strategies.

Inventive Principle:
Principle #15Dynamics

3Duration of action of stationary object

If flash memory wear is reduced through erase cycle management, then device lifespan is extended, but write performance is degraded

Engineering Contradiction:
Improveflash memory lifespanVSAvoidwrite throughput
Core Design Contradiction:
Duration of action of stationary objectVSProductivity

Solution Approach 1:

The patent employs preliminary actions in the form of write buffering and caching mechanisms. Before actual data is written to flash memory, writes are accumulated in volatile memory buffers. The system performs batch writes to flash storage, consolidating multiple small writes into larger sequential operations. This preliminary buffering approach reduces the total number of erase cycles required while maintaining high write throughput by minimizing the frequency of physical write operations to flash memory.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8909610B2Shared log-structured multi-version transactional datastore with metadata to enable melding trees
Publication Date: 2014.12.09 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8909610B2 patent drawing
  • US8909610B2 patent drawing
  • US8909610B2 patent drawing

AI summary

Architecture that includes an ordered and shared log of indexed transaction records represented as multi-version data structures of nodes and node pointers. The log is a sole monolithic source of datastore state and is used for enforcing concurrency control. The architecture also includes a transaction processing component that appends transaction records to the log from concurrent transactions executing on different processors. Each node of a record is assigned a log address.