Dual Database Synchronization System for Data Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current synchronization systems fail to effectively synchronize data across multiple client devices, particularly in resolving conflicts between different software versions and maintaining reliable synchronization without performance bottlenecks, and often require multiple versions of user data sets to be stored.
Innovation Solution
A synchronization system with a metadata server and contents server, utilizing two independent synchronization engines (synch up and synch down) that manage data and metadata independently, allowing for conflict resolution and frequency control, and enabling regeneration of snapshots in case of data loss or corruption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single synchronization database and engine are used, then the system structure is simple, but synchronization reliability and performance deteriorate when the database is lost or corrupted
Solution Approach 1:
The patent divides the single synchronization database into two separate databases: a first synchronization database storing first user data sets and a second synchronization database storing second user data sets. This segmentation ensures that if one database is lost or corrupted, the other database remains intact and can be used to restore synchronization, thereby improving reliability without significantly increasing system complexity.
2Ease of operation
If a single synchronization engine is used, then the system is easier to control, but it becomes a performance bottleneck for synchronization operations
Solution Approach 1:
The patent implements two independent synchronization engines: a first synchronization engine associated with the first synchronization database and a second synchronization engine associated with the second synchronization database. Each engine can operate independently to perform synchronization operations on its respective database, eliminating the performance bottleneck of a single engine while maintaining manageable control through independent operation.
3Adaptability or versatility
If multiple versions of user data sets are stored for different software versions, then compatibility is maintained, but data storage space and system complexity increase
Solution Approach 1:
The patent segments user data sets into two distinct groups: first user data sets generated by a first version of software stored in the first synchronization database, and second user data sets generated by a second version of software stored in the second synchronization database. This segmentation allows the system to maintain compatibility with multiple software versions while avoiding the need to store multiple versions of the same data set, thereby reducing storage space requirements.
Solution Approach 2:
Instead of storing multiple versions of each user data set to accommodate different software versions, the patent inverts the approach by creating separate databases for data sets generated by different software versions. This inversion allows the system to maintain version compatibility without duplicating data sets, as each database is dedicated to a specific software version.
4Productivity
If synchronization parameters are controlled by the synchronization system, then system-wide optimization is achieved, but device-specific performance requirements cannot be met
Solution Approach 1:
The patent enables dynamic control of synchronization parameters at the device level. Each client device can independently adjust synchronization parameters such as synchronization frequency and data selection based on its specific performance capabilities, network conditions, and user requirements. This dynamic adaptation allows devices with different performance characteristics to optimize their synchronization operations without compromising system-wide functionality.
Data Source
AI summary
Systems and methods are disclosed for synchronizing one or more user data sets on one or more client devices of a user, using a synchronization system. Each client device can have two independent and asynchronously-operating synchronization engines. The synchronization system can include a synchronization system manager that can resolve conflicts in data that arise from different versions of software being used generate a data set. Each client can maintain two separate databases: a first database that can contain a snapshot of the state of the user data sets across client devices, as known to the synchronization system. The second database can contain a snapshot of the local file system and information about the state of synchronization of the local file system with the synchronization system.


