Nested Transaction Isolation via Identifier Comparison
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data systems face challenges in ensuring isolation between nested transactions within a parent transaction, particularly in multi-version data systems, where operations within nested transactions may interfere with each other, leading to inconsistent data access and processing.
Innovation Solution
Implementing a mechanism where each nested transaction is assigned a begin transaction identifier and a completion transaction identifier, which serves as a statement identifier, allowing the parent transaction to manage visibility and isolation by comparing these identifiers to determine the visibility of object versions, ensuring that only changes made before the nested transaction started are visible to it.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If nested transactions are allowed to execute concurrently or interleaved within a parent transaction, then productivity is improved, but isolation between nested transactions deteriorates leading to inconsistent data access
Solution Approach 1:
The patent segments the transaction execution by assigning distinct begin and completion transaction identifiers to each nested transaction. This segmentation allows the system to track which object versions are visible to which nested transactions, ensuring that concurrent or interleaved executions maintain proper isolation boundaries without requiring sequential processing.
Solution Approach 2:
The patent introduces transaction identifiers (begin transaction identifier and completion transaction identifier) as intermediary mechanisms that mediate between nested transactions and object versions. These identifiers act as mediators that enable the visibility verification process, allowing nested transactions to access only appropriate object versions while maintaining isolation, thus resolving the contradiction between concurrent execution and data isolation.
2Reliability
If strict isolation is enforced between nested transactions, then data consistency is improved, but device complexity increases due to version tracking and identifier management
Solution Approach 1:
The patent applies preliminary action by assigning begin transaction identifiers to nested transactions before they execute and completion transaction identifiers after they complete. This advance preparation and subsequent finalization of identifiers simplifies the isolation enforcement mechanism, as the system only needs to compare these pre-assigned identifiers against object version timestamps rather than implementing complex real-time isolation protocols.
Solution Approach 2:
The patent changes the parameter representation of transaction states by using begin and completion transaction identifiers as key parameters for visibility verification. This parameter transformation converts the complex isolation problem into a simpler comparison operation between identifiers and object version timestamps, reducing the overall system complexity while maintaining data consistency.
3Measurement precision
If object versions are tracked with multiple identifiers, then measurement precision of transaction visibility is improved, but loss of time increases due to comparison operations
Solution Approach 1:
The patent extracts the essential visibility verification logic into a simple comparison operation between transaction identifiers and object version timestamps. By taking out the complex isolation enforcement logic and reducing it to a straightforward identifier comparison, the system achieves high measurement precision for visibility verification while minimizing the time cost of the operation.
Data Source
AI summary
A data system in which a parent transaction that has multiple nested transactions has isolation between the nested transactions. Each of at least some of the plurality of operations are included within a nested transaction within the parent transaction. For each of at least some of the nested transactions, a begin transaction identifier is assigned to the nested transaction; and on or around completion of the nested transaction, a completion transaction identifier is assigned as a statement identifier at least one object version operated upon by the nested transaction. Visibility of a particular version of an object to an active nested transaction may be verified by comparing the begin transaction identifier of the active nested transaction to the statement identifier of the particular version of the object. The comparison is done such that visibility achieves the proper isolation between nested transactions.


