Queued Transaction Processing via Asynchronous Queue Manager
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing distributed transaction processing systems, such as those using the two-phase commit protocol, face challenges in ensuring atomicity, consistency, isolation, and durability, particularly in handling failures and providing transparent and reliable transaction processing across client and server systems, where clients may receive ambiguous responses or fail to receive results due to server unavailability.
Innovation Solution
The implementation of queued transaction processing, where requests and responses are enqueued and processed asynchronously, enabling priority queuing, load balancing, and transparent transaction management, allowing clients to receive definitive outcomes even if servers are unavailable, and ensuring global atomicity through a transaction manager.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If two-phase commit protocol is used to ensure transaction reliability, then atomicity and consistency are improved, but system complexity and processing time increase
Solution Approach 1:
A transaction queue manager is introduced as an intermediary component between clients and application servers. This queue manager handles transaction coordination, ensuring reliable delivery of requests and responses while simplifying the overall system architecture by centralizing transaction management functions.
Solution Approach 2:
The transaction processing system is segmented into distinct components: clients, transaction queue managers, and application servers. Each component has well-defined roles and responsibilities, with the queue manager specifically handling transaction coordination and reliability assurance.
2Loss of time
If synchronous transaction processing is used to ensure immediate response, then response time is improved, but system throughput and scalability deteriorate
Solution Approach 1:
The system dynamically switches between synchronous and asynchronous processing modes based on transaction requirements and server availability. The transaction queue manager coordinates this dynamic behavior, allowing flexible response timing while maintaining high throughput through asynchronous processing of non-critical transactions.
Solution Approach 2:
Requests are enqueued and prepared in advance by the transaction queue manager before being processed by application servers. This preliminary action allows for better resource allocation and reduces immediate response time pressure, enabling the system to handle multiple transactions concurrently.
3Reliability
If server availability is increased to ensure continuous processing, then service reliability is improved, but system cost and resource consumption increase
Solution Approach 1:
The transaction queue manager maintains a queue of pending requests and prepares transaction contexts in advance. This cushioning mechanism allows the system to handle server failures gracefully by processing queued transactions when servers become available again, reducing the need for over-provisioned server resources.
Solution Approach 2:
The system implements feedback mechanisms where the transaction queue manager monitors server availability and adjusts processing priorities accordingly. When servers are unavailable, the queue manager pauses non-critical transactions; when servers become available, it resumes processing, optimizing resource utilization while maintaining service reliability.
4Productivity
If transaction queuing is implemented to enable asynchronous processing, then system throughput is improved, but transaction coordination complexity increases
Solution Approach 1:
The transaction queue manager serves as a dedicated intermediary that handles all transaction coordination complexities. It manages request queuing, response routing, error handling, and transaction coordination, thereby simplifying the interface between clients and application servers while enabling asynchronous processing.
Solution Approach 2:
The transaction queue manager is designed as a universal component that handles multiple functions: request queuing, response management, transaction coordination, error handling, and scalability support. This multi-functionality consolidates what would otherwise be multiple separate coordination mechanisms into a single unified system.
Data Source
AI summary
A method, system, and computer program product for processing a transaction between a client and an application server asynchronously in a distributed transaction processing environment having at least one transaction queue manager. An application request is received from a client to initiate a transaction. The request is placed in a transaction request queue by the transaction queue manager. The request is processed at the application server asynchronously relative to the receipt of the request. A response to the request is determined, and the response is placed in a transaction response queue for retrieval by the client.


