Distributed Database Isolation via Snapshot Versioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The two-phase commit protocol does not support true isolation level semantics in heterogenous distributed database systems, leading to issues with transaction consistency and data version synchronization across distributed database nodes.
Innovation Solution
Implementing a mechanism where the transaction manager specifies a commit ID to ensure data consistency by synchronizing table versions across all transaction participants, allowing for isolation levels like SERIALIZABLE and READ-COMMITTED, without requiring clients to know data locations or starting transactions on all participants.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the two-phase commit protocol is used to coordinate distributed atomic transactions, then transaction consistency is provided within heterogenous distributed database systems, but true isolation level semantics are not supported
Solution Approach 1:
The patent introduces a snapshot version table as an intermediary mechanism between the two-phase commit protocol and isolation level requirements. This snapshot version table stores version information of table data at specific points in time, allowing the system to achieve both transaction consistency through two-phase commit and true isolation level semantics by referencing these snapshots during transaction execution.
Solution Approach 2:
The patent implements preliminary action by capturing table snapshots at specific commit points and storing their versions in the snapshot version table before transactions need to access them. This allows transactions to reference consistent historical versions of data without requiring real-time synchronization across all distributed nodes, thereby enabling proper isolation levels while maintaining transaction consistency.
2Adaptability or versatility
If table versions are synchronized to the time at which the transaction began for SERIALIZABLE isolation level, then isolation level semantics are achieved, but system complexity increases
Solution Approach 1:
The patent applies copying by creating snapshot copies of table data at specific commit points and storing them in the snapshot version table. Instead of maintaining complex real-time synchronization mechanisms across all distributed nodes, the system copies data at discrete points in time and references these copies during transactions, significantly reducing system complexity while achieving proper isolation levels.
Solution Approach 2:
The patent implements preliminary action by pre-capturing and storing table snapshots at commit points before transactions need to access them. This preliminary capture of data versions eliminates the need for complex ongoing synchronization mechanisms during transaction execution, as transactions simply reference the pre-captured snapshots from the snapshot version table.
3Adaptability or versatility
If clients must manage transaction initiation across all nodes to ensure data consistency, then isolation levels are maintained, but ease of operation decreases
Solution Approach 1:
The patent implements self-service by having the database system automatically manage snapshot version creation and transaction coordination through the snapshot version table. Clients simply issue transactions without needing to manually manage initiation across all nodes, as the system automatically handles consistency and isolation level enforcement by referencing appropriate snapshots from the snapshot version table.
Solution Approach 2:
The patent introduces the snapshot version table as an intermediary that automatically manages data consistency and isolation levels. This intermediary handles the complex tasks of snapshot creation, version selection, and transaction coordination, allowing clients to operate with simple transaction statements without needing to manually manage multi-node initiation while still achieving proper data consistency.
Data Source
AI summary
A system includes transmission of a first transaction identifier and a first commit identifier to a first data storage system, the first commit identifier identifying a first data snapshot of the first data storage system, transmission of a first query to the first data storage system, transmission of a first prepare instruction and the first transaction identifier to the first data storage system, determination that a first ready response has been received from the first data storage system in response to the first prepare instruction, transmission, in response to the determination, of a first commit instruction and the first transaction identifier to the first data storage system, and reception of a second commit identifier from the first data storage system, the second commit identifier identifying a second data snapshot of the first data storage system.


