Enlisting Single Phase Commit Resources in Two Phase Transactions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In transaction processing, single-phase commit (1PC) resources cannot be combined with two-phase commit (2PC) resources due to potential failures during the voting phase, which can violate atomicity, preventing their use within 2PC transactions.

Innovation Solution

A unique identifier is generated for the 1PC resource and transmitted to the 1PC resource manager, allowing it to commit and record the identifier, ensuring that the 1PC resource manager's decision is stable before proceeding with the 2PC resource manager's commit process, thus maintaining atomicity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If single phase commit (1PC) resources are combined with two phase commit (2PC) resources in the same transaction, then resource utilization and transaction processing capability are improved, but atomicity may be violated due to potential failures during the voting phase

Engineering Contradiction:
Improvetransaction processing capabilityVSAvoidatomicity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by having the 1PC resource manager commit its transaction and record the unique identifier to stable storage before the 2PC voting phase completes. This advance commitment ensures that even if the 2PC voting fails, the 1PC resource's state is already determined and can be recovered, preventing atomicity violations while enabling both 1PC and 2PC resources to participate in the same transaction.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a unique identifier is generated and recorded for the 1PC resource, then the 1PC resource manager's commitment decision becomes stable and recoverable, but additional processing steps and system complexity are introduced

Engineering Contradiction:
Improvecommitment decision stabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses a unique identifier as an intermediary element that connects the 1PC resource manager's commitment decision with the global transaction manager's coordination. This identifier acts as a mediator that allows the 1PC resource to participate in 2PC transactions without requiring complex integration logic, as the identifier enables straightforward tracking and recovery of commitment states through simple record-reading operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If the 1PC resource manager commits the transaction without polling the transaction manager, then processing speed is improved, but coordination and consistency with other 2PC resources cannot be ensured

Engineering Contradiction:
Improvecommit processing speedVSAvoidtransaction consistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent resolves this contradiction by performing the commitment action preliminarily (before 2PC voting completes) while recording the unique identifier to stable storage. This preliminary commitment maintains the speed advantage of 1PC by avoiding polling delays, while the recorded identifier ensures consistency can be verified and recovered later, allowing both speed and consistency requirements to be satisfied.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10048983B2Systems and methods for enlisting single phase commit resources in a two phase commit transaction
Publication Date: 2018.08.14 RED HAT INC
  • US10048983B2 patent drawing
  • US10048983B2 patent drawing
  • US10048983B2 patent drawing

AI summary

Systems and methods are provided for enlisting single phase commit resources in a two phase commit transaction. An exemplary method includes accessing a global transaction having a plurality of processes requiring single phase commit (1PC) resource and a two phase commit (2PC) resource, initializing a 1PC resource manager for the 1PC resource with a first process of the plurality of processes, wherein the first process requires the 1PC resource, preparing a 2PC resource manager for the 2PC resource with a second process of the plurality of processes, wherein the second process requires the 2PC resource, generating a unique identifier for the 1PC resource, transmitting the unique identifier to the 1PC resource manager, and instructing the 1PC resource manager to commit the first process to the 1PC resource, wherein committing the first process to the 1PC resource comprises recording the unique identifier to the 1PC resource.