Semi-Distributed Transaction Commit Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for transaction commit operations in databases, such as Google Percolator and Yahoo's Omid, suffer from excessive latency due to either multiple rounds of communication or reliance on centralized batching, which hampers system scalability and throughput.
Innovation Solution
A semi-distributed approach where a centralized transaction management engine allocates unique timestamps for conflict detection and manages transaction IDs, while distributing the final commit processing among client devices, eliminating the need for a two-phase commit and reducing latency by embedding persistent transaction state within data records.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a two-phase commit protocol is used for conflict detection and persisting the commit point, then transaction consistency is ensured, but commit operation latency increases due to multiple rounds of communication
Solution Approach 1:
The patent segments the commit operation into two independent parts: conflict detection (performed by the transaction management engine) and commit execution (performed by the client device). This segmentation eliminates the need for multiple communication rounds by allowing the client to autonomously execute the commit after receiving conflict detection results, thereby reducing latency while maintaining consistency.
Solution Approach 2:
The transaction management engine performs conflict detection in advance before the actual commit operation. By determining whether conflicts exist beforehand and providing the commit point to the client, the system enables the client to execute the commit immediately without waiting for further coordination, thus reducing the overall commit latency while ensuring consistency.
2Device complexity
If a centralized entity is used for both conflict detection and commit processing, then system coordination is simplified, but throughput decreases due to batching requirements
Solution Approach 1:
The patent divides the centralized commit processing into two segments: the transaction management engine handles conflict detection, while client devices independently handle commit execution. This segmentation eliminates the need for centralized batching, allowing multiple commits to proceed in parallel and thereby increasing throughput without significantly increasing coordination complexity.
Solution Approach 2:
Client devices are empowered to autonomously execute commit operations based on conflict detection results received from the transaction management engine. This self-service mechanism eliminates the need for the centralized entity to coordinate each commit individually, thereby increasing throughput while maintaining relatively simple system coordination.
3Loss of time
If commit processing is distributed among client devices, then commit latency is reduced and throughput increases, but system complexity increases due to decentralized persistent logging
Solution Approach 1:
The patent extracts the persistent logging function from the centralized transaction management engine and places it at the client devices. By providing the commit point (including the first key and commit timestamp) to the client, the system enables clients to independently persist transaction state without requiring complex decentralized logging infrastructure, thus reducing latency and increasing throughput while limiting the increase in system complexity.
Data Source
AI summary
The present teaching relates to committing transactions over a database in a semi-distributed manner. In one example, a transaction is executed to access a plurality of keys stored in the database. A request is transmitted to a transaction management engine to commit the transaction. The transaction management engine performs a conflict check between the transaction and one or more transactions running concurrently with the transaction, and generates an instruction based on the conflict check. The instruction is received from the transaction management engine. Based on the instruction, one or more of the plurality of keys are updated in the database or data added by the transaction to the database are erased.


