Database Synchronization via Conflict Resolution and Acknowledgment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database synchronization methods lack fault tolerance and efficient conflict resolution, particularly in distributed environments where real-time synchronization and data consistency across primary and secondary databases are critical, and there is a need to minimize data corruption and processing overhead.
Innovation Solution
A fault-tolerant synchronization process that involves determining changes on both primary and secondary devices, merging these changes, and confirming receipt before updating the primary database, while allowing for real-time synchronization and resolving conflicts to ensure data integrity and consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If database changes are synchronized immediately upon occurrence, then real-time synchronization is achieved, but data corruption risk increases due to potential transmission failures
Solution Approach 1:
The system performs preliminary actions by determining changes and merging them before final updates are applied. The primary device determines changes in the primary database, merges them with secondary database changes, and only then updates the primary database after confirmation, ensuring data integrity while maintaining synchronization efficiency
Solution Approach 2:
The system implements feedback mechanisms where the secondary device sends confirmation messages to the primary device after receiving merged changes. The primary device waits for this feedback confirmation before finalizing the update, creating a closed-loop control system that ensures reliable data synchronization without corruption
2Stability of the object's composition
If all changes are merged and transmitted to secondary device, then data consistency is maintained, but transmission overhead increases
Solution Approach 1:
The system extracts and transmits only the essential information needed for synchronization. Instead of transmitting entire databases, it determines and transmits only the changes (differences) between synchronization points, significantly reducing transmission overhead while maintaining data consistency
Solution Approach 2:
The system changes the parameter of data transmission from transmitting complete database states to transmitting only change deltas. This parameter change in the synchronization approach reduces the volume of transmitted data while ensuring consistency through selective change propagation
3Productivity
If primary database is updated before confirmation, then processing speed is improved, but fault tolerance decreases
Solution Approach 1:
The system provides beforehand cushioning by preparing merged changes and holding them ready for transmission before actual updates are applied. This buffering approach allows the system to maintain processing efficiency while ensuring fault tolerance through confirmation-based update execution
Solution Approach 2:
The system introduces an intermediary confirmation mechanism between change merging and database updating. The confirmation message acts as an intermediary that validates the safety of proceeding with updates, ensuring fault tolerance without significantly impacting processing speed
4Ease of operation
If synchronization database is maintained at each device, then conflict resolution is facilitated, but device complexity increases
Solution Approach 1:
The system segments the synchronization functionality into separate components: a synchronization database for tracking changes, a conflict detection mechanism, and a resolution process. This segmentation makes the complex synchronization process more manageable and easier to operate while maintaining organized data structures
Data Source
AI summary
Methods, systems, and apparatus, including computer program products, for synchronizing database changes among multiple devices. In one aspect, a method includes determining one or more primary differences between a primary database and a local synchronization database; receiving, from a secondary device, one or more secondary differences associated with a secondary database; merging the primary differences and the secondary differences to generate a set of merged differences; providing the set of merged differences to the secondary device; receiving, from the secondary device, an acknowledgment indicating receipt of the set of merged differences; and updating the primary database in accordance with the set of merged differences after receipt of the acknowledgment. Further, at least one conflict can be detected between the primary differences and the secondary differences, and can be resolved prior to generating the set of merged differences.


