Transaction Manager Instance Awareness for Multi-Branch Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current transactional middleware systems face performance issues when handling distributed transactions across multiple database instances, leading to errors like XAER_AFFINITY and increased cross-instance traffic, as they assume a single transaction branch for all servers in a group, which is not feasible with multi-instance databases like Oracle RAC.
Innovation Solution
The system allows a single Tuxedo group to associate with multiple resource managers and database instances, using a non-singleton service to connect to different database instances, enabling multiple transaction branches and optimizing transactions through instance awareness and shared memory storage of transaction identifiers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a single transaction branch is used for all servers in a group, then system simplicity is maintained, but affinity errors occur and cross-instance traffic increases when using multi-instance databases
Solution Approach 1:
The patent segments the single transaction branch into multiple transaction branches, each associated with a specific database instance. This allows servers in a group to connect to different database instances without causing affinity errors, as each branch is properly bound to its target instance.
Solution Approach 2:
The patent introduces a new dimension to transaction branch identification by incorporating database instance identifiers into the branch qualification. This transforms the traditional single-dimension branch ID into a multi-dimensional identifier that includes both group information and instance information, enabling proper routing to multi-instance databases.
2Productivity
If multiple transaction branches are implemented for different database instances, then affinity errors are avoided and cross-instance traffic is reduced, but system complexity increases
Solution Approach 1:
The patent performs preliminary actions by pre-establishing transaction branches with their corresponding database instance associations before transactions occur. The transaction manager proactively creates and configures multiple branches with proper instance bindings, so that when transactions need to access different instances, the pathways are already prepared and optimized.
Solution Approach 2:
The patent introduces a transaction manager as an intermediary that manages the complexity of multiple transaction branches and identifiers. This intermediary component handles the coordination between servers and multiple database instances, managing the branch qualification and instance mapping, thereby shielding application servers from the complexity while enabling high throughput.
3Adaptability or versatility
If cross-instance traffic is allowed, then flexibility in database access is maintained, but performance decreases due to increased network overhead
Solution Approach 1:
The patent applies local quality by binding each transaction branch to a specific database instance location. This creates a localized connection path from servers to their target instances, reducing the need for cross-instance network traffic. Each branch has optimized local connectivity to its associated instance, improving transaction processing speed while maintaining adaptability through the ability to select appropriate instances.
Data Source
AI summary
A system and method can provide high throughput transactions in a transactional system. A system and method can, via a transaction manager, obtain information on a plurality of resource managers. The transaction manager can further manage a plurality of transaction branches, where each of the plurality of transaction branches can be associated with a different one of the plurality of resource managers. The methods and systems can associate a transaction identifier with each of the plurality of transaction branches, which can result in a plurality of transaction identifiers, where each of the plurality of transaction identifiers can include a branch identifier for each of the plurality of transaction branches. The methods and systems can perform one or more transactional operations on the plurality of transaction branches based on the different transaction identifiers.


