Transactional Message Access Using Pre-Emptive Gets
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing message processing systems require each transactional step to wait for the previous step to complete before starting, leading to inefficiencies in batch processing due to delayed access to uncommitted transaction messages.
Innovation Solution
Implementing 'pre-emptive gets' for uncommitted transaction messages by linking the second transaction to the first transaction and delaying its resolution until the first transaction is resolved, allowing access to uncommitted puts and ensuring data integrity through ready-checks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a two-phase commit protocol is used to ensure data integrity, then reliability is improved, but processing speed deteriorates because each transactional step must wait for the previous step to complete
Solution Approach 1:
The system performs preliminary actions by allowing the get operation to access and retrieve the message before the put transaction is committed. The message is made available to the consumer in advance, and the consumer can begin processing while the producer transaction is still uncommitted. This preliminary access eliminates the waiting period that normally occurs in two-phase commit protocols.
Solution Approach 2:
The patent segments the transactional process into independent phases that can proceed concurrently. The get operation and its associated processing are separated from the put commit operation, allowing them to execute in parallel rather than sequentially. This segmentation breaks the traditional dependency chain where each step must wait for the previous step to complete.
2Device complexity
If sequential transaction processing is used to maintain simplicity, then device complexity is reduced, but productivity deteriorates due to waiting time between transactional steps
Solution Approach 1:
The system performs preliminary actions by allowing the get operation to access and retrieve the message before the put transaction is committed. The message is made available to the consumer in advance, and the consumer can begin processing while the producer transaction is still uncommitted. This preliminary access eliminates the waiting period that normally occurs in two-phase commit protocols.
Solution Approach 2:
The patent introduces an intermediary mechanism that coordinates the linked transactions without requiring complex distributed transaction management. The system uses a linking mechanism that allows transactions to be associated and coordinated through message references rather than through complex two-phase commit protocols, simplifying the coordination while enabling parallel execution.
3Loss of time
If early access to uncommitted messages is permitted, then processing time is reduced, but reliability deteriorates due to potential rollbacks of uncommitted transactions
Solution Approach 1:
The system performs preliminary actions by allowing the get operation to access and retrieve the message before the put transaction is committed. The message is made available to the consumer in advance, and the consumer can begin processing while the producer transaction is still uncommitted. This preliminary access eliminates the waiting period that normally occurs in two-phase commit protocols.
Solution Approach 2:
The patent implements feedback mechanisms where the system monitors the commit status of linked transactions and automatically handles rollbacks. When a rollback occurs, the system detects this through the transaction linking mechanism and propagates the rollback to associated transactions, ensuring consistency without requiring the consumer to wait for commit confirmation.
Data Source
AI summary
A method, computer program product, and computer system are provided for implementing message access for uncommitted transaction messages. The method includes: receiving a put operation of a message as part of a first transaction; permitting a get operation of the put message before the put message is committed, wherein the get operation is part of a second transaction; linking the second transaction to the first transaction; and delaying resolution of the second transaction until the first transaction is resolved. Delaying resolution of the second transaction may include receiving a check operation for the second transaction that all uncommitted put operations are committed before the second transaction can commit and responding to the check operation when the first transaction resolves.


