Shared Transaction Log for Cluster Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing application server clusters face challenges in ensuring high availability of Global/XA transactions due to potential transactional inconsistencies and prolonged resource locks, which affect performance and reliability.
Innovation Solution
A method is implemented to manage transaction processing by logging transactions, detecting failures, taking ownership of locked resources, and recovering transactions using a peer process within the cluster, employing a two-phase commit protocol and shared logging to ensure timely recovery and resource unlocking.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a single application server process is used to manage transactions, then transaction processing is simple to implement, but system availability decreases when the process fails
Solution Approach 1:
The patent introduces a shared transaction log as an intermediary between application server processes. When a process fails, other processes can access the shared log to recover transactions without complex peer-to-peer coordination. The log acts as a mediator that simplifies the recovery mechanism while maintaining high availability.
Solution Approach 2:
The patent combines multiple processes' transaction logs into a shared log structure that is accessible by all processes in the cluster. This merging allows any process to take over transaction management from a failed process by accessing its logged transactions, thereby improving availability without requiring complex inter-process communication protocols.
2Reliability
If transaction logs are locked during processing to ensure consistency, then data integrity is maintained, but resource locks are prolonged causing performance degradation
Solution Approach 1:
The patent performs preliminary logging of all transaction operations before committing them. By recording transactions in the shared log first and then using lightweight locks during commit, the system maintains consistency while minimizing lock duration. This preliminary action allows for faster lock release and improved overall performance.
Solution Approach 2:
The patent extracts the heavy locking mechanism from the transaction processing path by using asynchronous logging. Transactions are logged without acquiring expensive locks, and lock acquisition is delayed until commit time when necessary. This separation reduces prolonged locking and improves throughput.
3Reliability
If any application server can access any transaction log in the cluster, then transaction recovery availability is improved, but access control complexity increases
Solution Approach 1:
The patent implements a universal shared log structure that serves multiple functions: it acts as both the primary transaction log and the recovery mechanism for the entire cluster. Any process can access any log entry, eliminating the need for complex access control lists or permission management while maintaining security through the log's inherent transactional guarantees.
Data Source
AI summary
Recovery of inflowed transactions are provided by any instance in a cluster, along with peer recovery of transactions in a cluster, and administrative functionality related to these aspects. A method of managing transaction processing comprises performing transaction processing using a first process, wherein the first process logs the transaction processing that it performs, detecting failure of the first process, wherein the transaction logs of the first process are locked, taking ownership of the locked transaction logs of the first process at a second process, unlocking the locked transaction logs of the first process for use by the second process, and recovering at least one transaction using the transaction logs.


