Database Server Concurrent Transaction Committing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional database servers cannot execute conflicting transactions concurrently while maintaining data integrity, leading to inefficiencies and complexities in transaction processing and application design.
Innovation Solution
A database server apparatus with a data storage unit, committing procedure information storage unit, data creating unit, determining unit, and committing unit that creates yet-to-be-committed update data and re-updates it based on committed data and procedure information, allowing concurrent execution of transactions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If exclusive control (pessimistic lock or optimistic lock) is used to assure data integrity, then data integrity is maintained, but conflicting transactions cannot be executed at the same time
Solution Approach 1:
The patent segments the transaction processing into two independent phases: execution phase and committing phase. During execution, multiple transactions can access and modify data concurrently without exclusive control. The segmentation allows the system to maintain data integrity in the committing phase while enabling high-concurrency execution, thus resolving the contradiction between reliability and productivity.
Solution Approach 2:
The patent applies preliminary action by pre-processing transactions during the execution phase to generate update data, and then validating and committing these updates in a subsequent phase. This preliminary execution without locks allows high concurrency, while the later committing phase ensures data integrity through validation against already-committed transactions, effectively separating the efficiency-critical execution from the integrity-critical commitment.
2Reliability
If exclusive control is used to process conflicting transactions in succession, then data integrity is assured, but the database server cannot execute conflicting transactions at the same time
Solution Approach 1:
The patent divides transaction processing into execution phase and committing phase. During execution, transactions run concurrently without sequential bottlenecks. The segmentation eliminates the time loss associated with sequential processing while maintaining integrity through the subsequent committing phase that validates updates against already-committed data.
Solution Approach 2:
The patent enables continuous execution of multiple transactions without interruption by removing exclusive control during the execution phase. Transactions can read and modify data continuously and concurrently, maximizing resource utilization and minimizing idle time, while the committing phase ensures continuity of integrity by validating all updates against the final committed state.
3Reliability
If the database server combines and recombines transactions to determine execution order, then data integrity is maintained, but it is difficult and not practical to design execution of transactions during application design
Solution Approach 1:
The patent extracts the complexity of transaction ordering and conflict resolution from the application design phase and relocates it to the database server's executing phase. Application designers only need to specify normal update logic without worrying about execution order or conflict handling. The database server automatically manages the execution phase and committing phase, taking out the operational burden from users while maintaining integrity.
Solution Approach 2:
The patent implements self-service by enabling the database server to automatically handle transaction execution ordering and conflict resolution without requiring application designers to pre-plan these details. The system autonomously manages the execution phase and committing phase, allowing transactions to be designed simply as data update operations while the database server handles the complex coordination and integrity assurance independently.
Data Source
AI summary
A database server apparatus including: a data storage unit configured to store data; a committing procedure information storage unit configured to store committing procedure information for committing each of a plurality of transactions that updates data stored in the data storage unit; a data creating unit configured to create yet-to-be-committed update data from the stored data by executing a transaction for updating the data upon receipt of the transaction; a determining unit configured to determine whether there is a committed transaction that creates committed data as source update data before the transaction executed by the data creating unit is committed; and a committing unit configured to commit the transaction for re-updating the yet-to-be-committed update data in accordance with the committed data and the committing procedure information, when the determining unit determines that there is the committed transaction.


