Redo-Only Write-Ahead Log for Distributed Transaction Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed systems relying on two-phase commit protocols face high implementation complexity and performance overhead, and are susceptible to permanent failures, with undo operations being expensive due to storage read requirements.

Innovation Solution

Implementing a redo-only write-ahead log system that eliminates the need for an undo log by using transaction IDs to ensure idempotent transactions, allowing only the most recent transactions to be processed, and enabling replay of transactions from the redo log in case of failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If two-phase commit protocol is used to process transactions in distributed systems, then transaction reliability is improved, but implementation complexity and performance overhead increase

Engineering Contradiction:
Improvetransaction reliabilityVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts and eliminates the undo log component from the traditional two-phase commit protocol, retaining only the redo log. This extraction simplifies the system by removing the complex undo operation mechanism while maintaining transaction reliability through redo-only operations that replay transactions from the log.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of maintaining both redo and undo logs and performing complex undo operations on failures, the patent inverts the approach by using only redo logs. The system assumes transactions are idempotent and simply replays them from the redo log, eliminating the need for expensive undo reads and complex rollback mechanisms.

Inventive Principle:
Principle #13The other way round (Inversion)

2Measurement precision

If both redo log and undo log are maintained for tracking transactions, then transaction tracking accuracy is improved, but storage resources and processing time increase

Engineering Contradiction:
Improvetransaction tracking accuracyVSAvoidstorage resources
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent removes the undo log from the dual-log system, extracting only the necessary redo log for transaction tracking. This eliminates redundant storage requirements while maintaining accurate transaction tracking through the redo log, which records all transaction operations needed for recovery and replay.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent discards the need for undo operations and their associated log entries. By assuming transactions are idempotent, the system can safely discard undo log data and still maintain accurate tracking through redo logs, which suffice for both transaction recording and failure recovery.

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If undo operations are performed to rollback transactions, then data integrity is maintained, but processing time increases due to expensive storage reads

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent inverts the traditional approach by eliminating undo operations entirely. Instead of reading from undo logs to roll back transactions, the system uses redo logs to replay transactions forward, assuming idempotency. This eliminates expensive storage reads associated with undo operations while maintaining data integrity through successful transaction replay.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent extracts and removes the costly undo operation mechanism from the transaction recovery process. By relying solely on redo logs and idempotent transaction replay, the system eliminates the need for expensive undo reads, significantly reducing processing time while maintaining data integrity through consistent redo operations.

Inventive Principle:
Principle #2Taking out (Extraction)

4Reliability

If two-phase commit protocol is used to ensure transaction completion, then transaction reliability is improved, but system performance overhead increases

Engineering Contradiction:
Improvetransaction completion reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts only the essential redo log component from the two-phase commit protocol, eliminating the undo log and associated complexity. This extraction reduces system performance overhead by removing the costly undo operations while maintaining transaction completion reliability through simplified redo-only replay mechanisms.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent inverts the traditional two-phase commit approach by using only redo operations. Instead of the complex prepare-commit-rollback sequence, the system employs simplified redo replay from logs, assuming idempotent transactions. This inversion dramatically reduces performance overhead while maintaining reliable transaction completion through consistent redo operations.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS11294864B2Distributed transactions with redo-only write-ahead log
Publication Date: 2022.04.05 VMWARE INC
  • US11294864B2 patent drawing
  • US11294864B2 patent drawing
  • US11294864B2 patent drawing

AI summary

Examples perform transactions across a distributed system of elements, such as nodes, computing devices, objects, and virtual machines. The elements of the distributed system maintain data (e.g, tables) which include information on transactions previously received and the source of the transactions. A first element of the distributed system transmits a transaction, the identifier (ID) of the first element, and a transaction ID to a plurality of second elements. The second elements compare the transaction ID to the maximum transaction ID associated with the first element and stored in the tables to determine whether the transaction is the most recent and should be performed, or whether the transaction has already been performed and should not be re-performed. In this manner, undo logs are not needed.