Transaction Manager Enlistment Data Structure Prevents Interleaving

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing transaction managers in application server systems face inefficiencies in managing multiple transaction requests from a resource object, leading to potential XA protocol violations due to concurrent updates by different applications on the same resource.

Innovation Solution

A transaction manager maintains an enlistment data structure to manage resource object enlistment, blocking new enlistment requests if the resource is already enlisted and ensuring that the resource is locked until the requested task is complete, then delisting it upon completion, thereby preventing interleaving transactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the transaction manager allows concurrent enlistment requests from multiple applications on the same resource, then the system throughput is improved, but XA protocol violations occur due to interleaved transactions

Engineering Contradiction:
Improvesystem throughputVSAvoidXA protocol compliance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by checking the enlistment data structure before allowing a new enlistment request to proceed. The transaction manager proactively identifies potential protocol violations by examining whether a resource is already enlisted before committing to the enlistment operation, preventing interleaved transactions from occurring in the first place

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The enlistment data structure serves as an intermediary mechanism between multiple applications and the resource. It mediates concurrent enlistment requests by maintaining state information about current enlistments, allowing the transaction manager to coordinate access and prevent protocol violations while still enabling efficient processing of legitimate concurrent requests

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the transaction manager blocks enlistment requests when a resource is already enlisted, then XA protocol compliance is maintained, but system throughput decreases due to serialized processing

Engineering Contradiction:
ImproveXA protocol complianceVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adjusts its handling of enlistment requests based on the current state of the resource. When a resource is enlisted, the system blocks new requests to maintain protocol compliance. When the resource becomes available, the system immediately accepts new enlistment requests. This dynamic state-dependent behavior optimizes throughput by minimizing blocking duration while ensuring protocol compliance

Inventive Principle:
Principle #15Dynamics

3Device complexity

If the transaction manager uses a simple enlistment check without detailed state tracking, then the device complexity is reduced, but the ability to prevent interleaved transactions is compromised

Engineering Contradiction:
Improveenlistment management complexityVSAvoidinterleaving prevention
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent uses copying by maintaining an enlistment data structure that mirrors the enlistment state of resources. Rather than implementing complex nested checks within the enlistment logic itself, the system creates and maintains a separate data structure that copies essential enlistment state information, enabling efficient and reliable interleaving detection with minimal impact on the core enlistment mechanism

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7849464B2Protection against interleaving transactions using a transaction manager
Publication Date: 2010.12.07 ORACLE INT CORP
  • US7849464B2 patent drawing
  • US7849464B2 patent drawing
  • US7849464B2 patent drawing

AI summary

A transaction manager maintains an enlistment data structure used for managing resource object enlistment. A transaction manager may receive an enlistment request initiated from a resource object. Upon receiving the request, the transaction manager will determine if the resource object is already enlisted. If the resource object is already enlisted, the transaction manager will block the enlistment request. If the resource object is not enlisted, the transaction manager will enlist the resource. Upon enlistment, the resource object will perform a requested task or service. After the requested task or service is complete, the resource initiates a delistment request to the transaction manager. After receiving the delistment request from the resource, object, the transaction manager is delisted from the enlistment data structure.