Versioned Tuple Cache for Abortable Transactions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems face challenges in achieving atomic updates and isolation during transactions, particularly when crashes occur, as conventional redo-only logs do not allow for abortable transactions, leading to potential inconsistencies and inefficiencies.

Innovation Solution

A system utilizing a versioned tuple cache and a transaction manager that updates an in-memory key-value store with transaction identifiers, enabling opportunistic locking and low-cost transaction abortion by ignoring uncommitted transactions, and using a redo-only log for fast, abortable transactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If redo-only logs are used to achieve fast transactions, then transaction speed is improved, but transaction abortability deteriorates

Engineering Contradiction:
Improvetransaction speedVSAvoidtransaction abortability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent segments the transaction log into two distinct components: a redo-only log for fast committed transactions and a versioned tuple cache for managing uncommitted transaction states. This segmentation allows the system to maintain fast committed transactions through the redo-only log while enabling abortability through the versioned tuple cache, which stores pre-image information needed for transaction rollback.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The versioned tuple cache acts as an intermediary between the redo-only log and the need for transaction abortability. It stores pre-image information (old values) of tuples before modification, allowing the system to revert changes if a transaction needs to be aborted, while the redo-only log continues to provide fast committed transaction processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If undo-redo logs are used to achieve isolation characteristics, then isolation is improved, but overhead increases

Engineering Contradiction:
Improveisolation characteristicsVSAvoidoverhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the undo functionality from the traditional undo-redo log mechanism and places it specifically in the versioned tuple cache. This extraction allows the system to maintain isolation characteristics by storing pre-image information only when needed (for uncommitted transactions), reducing the overhead associated with maintaining undo information for all transactions throughout their entire lifecycle.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system changes the parameter of log usage by implementing a redo-only log for committed transactions, eliminating the need for undo logs for committed transactions. The versioned tuple cache maintains pre-image information dynamically based on transaction commit status, changing from a static undo-redo log approach to a dynamic, selective pre-image storage approach that reduces overhead.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10176209B2Abortable transactions using versioned tuple cache
Publication Date: 2019.01.08 VMWARE INC
  • US10176209B2 patent drawing
  • US10176209B2 patent drawing
  • US10176209B2 patent drawing

AI summary

A transaction manager for handling operations on data in a storage system provides a system for executing transactions that uses a versioned tuple cache to achieve fast, abortable transactions using a redo-only log. The transaction manager updates an in-memory key-value store and also attaches a transaction identifier to the tuple as a minor key. Opportunistic locking can be accomplished due to the low cost of aborting transactions.