Bidirectional Database Replication via Log Position Triggering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current database management systems restrict users to read-only operations on target databases, limiting their ability to perform data manipulation actions, which can lead to frequent failures and high locking messages due to concurrent changes between source and target databases.
Innovation Solution
A method where a data manipulation request is sent to a source database, with the source database attempting to persist the action and sending a log position to a replication engine, allowing the replication engine to trigger the action in the target database, ensuring consistency and confirming the completion of the action.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If users are allowed to perform data manipulation actions on the target database, then user flexibility and operational capability are improved, but database consistency and reliability deteriorate due to concurrent changes between source and target databases
Solution Approach 1:
The system performs preliminary actions by sending the data manipulation request to the source database before executing it on the target database. The source database attempts to persist the action and returns a log position, which the replication engine uses to trigger the corresponding action on the target database. This preliminary execution on the source database ensures that consistency is maintained before the target database is modified.
Solution Approach 2:
The system implements feedback by having the source database send a log position of the data manipulation action to the replication engine. The replication engine uses this feedback to trigger the corresponding action on the target database and confirms completion. This feedback mechanism ensures that changes are propagated correctly and consistency is maintained between source and target databases.
2Reliability
If a two-phase commit protocol is applied to ensure consistency, then database reliability is improved, but system productivity and operational speed deteriorate due to frequent failures and block situations
Solution Approach 1:
The system extracts the commit coordination mechanism from the traditional two-phase commit protocol. Instead of using a rigid two-phase commit that causes block situations and failures, the patent uses a log position-based triggering mechanism where the source database sends the log position to the replication engine, which then triggers the action on the target database. This extraction of the commit protocol's core function while removing its restrictive structure improves throughput while maintaining consistency.
Solution Approach 2:
The replication engine acts as an intermediary between the source database and the target database. It receives the log position from the source database, triggers the corresponding data manipulation action on the target database, and confirms completion. This intermediary mechanism enables consistent data propagation without the blocking issues of traditional two-phase commit protocols, thereby improving system productivity.
3Reliability
If the target database is used for read-only operations, then data consistency is maintained, but operational versatility and user capability are limited
Solution Approach 1:
The system makes the target database dynamic by allowing it to transition from a static read-only state to a state where data manipulation actions can be performed. The target database can now receive and execute data manipulation requests triggered by the replication engine, while still maintaining consistency with the source database through the log position-based triggering mechanism. This dynamic capability increase enhances operational versatility without sacrificing data consistency.
Data Source
AI summary
In an approach, a processor receives a data manipulation request on a target database. A processor sends the data manipulation request to a source database. The source database attempts to persist a data manipulation action relating to the data manipulation request. Responsive to a successful attempt to persist the data manipulation action: the source database sends a log position of the data manipulation action to a data replication engine; a processor replicates the data manipulation request triggering the data manipulation action in the target database; and a processor confirms to the target database that the data manipulation action in the target database has been completed.


