Split Transaction Execution for Automatic Retry
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computing systems face challenges in automatically retrying failed transactions without involving the client, especially when transient errors occur, such as deadlocks or validation failures in optimistic concurrency control systems, leading to increased complexity and overhead in retry logic.
Innovation Solution
The system splits transaction execution into two phases: a modify phase for updating the database state and an output phase for generating data to be sent to the client, allowing automatic retries to be handled internally by the server, reducing the need for client interaction and minimizing exposure of failures to the client.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Extent of automation
If the server returns data to the client during transaction execution, then the client can receive results, but automatic retries become impossible without client interaction
Solution Approach 1:
The patent segments the transaction execution into distinct phases: a modify phase that executes database state changes, and a subsequent phase that generates and returns output data to the client. This segmentation allows the modify phase to be automatically retried by the server without client involvement, while the output phase only executes if the modify phase succeeds, thus resolving the contradiction between automation and client interaction requirements.
2Reliability
If client library implements automatic retry logic, then transaction failures can be handled, but overhead increases due to extra communication round trips
Solution Approach 1:
The patent implements self-service by enabling the server to automatically detect transaction failures and execute retries without requiring the client library to implement retry logic. The server handles the entire retry process internally, eliminating the need for client-server communication round trips that would otherwise be required for retry coordination, thus reducing time loss while maintaining reliability.
3Reliability
If the entire transaction is executed atomically, then data consistency is maintained, but the time window for conflicts increases
Solution Approach 1:
The patent divides the atomic transaction into a modify phase that changes database state and a separate output phase that generates results. By segmenting the transaction this way, the modify phase can be executed and committed more quickly, reducing the time window during which conflicts can occur, while still maintaining data consistency through the structured phase separation and server-managed retry mechanism.
Data Source
AI summary
Running a transaction against a database that allows the transaction to be automatically retried when the transaction fails such that certain transaction failures that cause the transaction to be automatically retried are not visible to an entity that receives data as a result of the execution of the transaction. A first set of statements of a transaction is identified by identifying statements that will cause a change in the database state. A second set of statements is identified, that result in data being generated to be sent to the entity. The method further includes executing the first set of statements to change the database. The method further includes running the second set of statements separately from the first set of statements to generate data to be sent to the entity.


