Journaling Mechanism for Atomic Block Write Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing disk storage systems face inefficiencies in achieving atomic writes due to high costs and reduced write-bandwidth in traditional methods like pointer switching, journaling, and capacitor-based solutions, particularly in software-based virtual disk storage.

Innovation Solution

Implementing a journaling mechanism that commits an error status to a journal before writing data to the storage device, allowing for atomic writes with reduced write-bandwidth by minimizing the data written to the journal and focusing on a small status and identifier, thus improving performance and error handling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional journaling is used to achieve atomic writes, then data integrity is improved, but write-bandwidth is reduced by half

Engineering Contradiction:
Improvedata integrityVSAvoidwrite-bandwidth
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts only the essential information needed for atomic write tracking from the full data block, separating the status/identifier (512 bytes) from the actual data (4KB). By writing only the minimal status information to the journal rather than the complete data, the system maintains data integrity while reducing the write overhead to the journal, thereby improving overall write-bandwidth.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the write operation into two distinct phases: first writing the status/identifier to the journal, then writing the actual data block. This segmentation allows the journal to receive only minimal information initially, reducing the impact on write-bandwidth while still ensuring atomicity through the status tracking mechanism.

Inventive Principle:
Principle #1Segmentation

2Reliability

If pointer switching is used to achieve atomic writes, then data integrity is improved, but device complexity increases due to extra block allocation and management

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

Solution Approach 1:

Instead of allocating and managing extra blocks throughout the storage system (as required by pointer switching), the patent uses a simple, disposable journal entry structure. The journal stores only the status and identifier of the block being written, which is a much simpler data structure that requires minimal management overhead while still ensuring atomic write integrity.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Reliability

If capacitor-based solutions are used to achieve atomic writes, then data integrity is improved, but hardware complexity increases due to physical capacitor requirements

Engineering Contradiction:
Improvedata integrityVSAvoidhardware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent replaces the physical capacitor-based persistence mechanism with a software-based journaling system. Instead of relying on hardware capacitors to retain data during power failures, the system uses a journal structure that tracks write status and can recover or indicate errors software-based, eliminating the need for additional physical hardware components.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10936446B2Efficient handling of block write atomicity
Publication Date: 2021.03.02 VMWARE INC
  • US10936446B2 patent drawing
  • US10936446B2 patent drawing
  • US10936446B2 patent drawing

AI summary

A journal-based process to achieve atomicity in a device driver write operation includes committing a transaction associated with the operation to a journal that include a status indicating the target block is corrupted. Subsequent to committing the transaction, the data is written to the target block. If the write operation is successfully committed, the transaction can be deleted from the journal. If a system crash occurs (e.g., power failure) before the write operation is successfully committed, the transaction remains in the journal and can be used to update block metadata associated with the target block when the system reboots to indicate that it is corrupted; e.g., the target block is a torn write.