Operational Transformations for Object Graph Data Sync
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data synchronization methods fail to provide unblocked and offline collaborative capabilities while ensuring consistent merges and preserving user intentions, particularly in complex data structures represented as object graphs, and lack effective nonlinear undo mechanisms.
Innovation Solution
A computer-implemented method employing operational transformations to manage object graphs, where atomic operations are transformed and recorded in a history log, allowing for conflict resolution and non-linear undo functionality, ensuring consistency and convergence across multiple users.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional file-based syncing or centralized database locking methods are used, then data consistency can be maintained, but user collaboration is blocked and offline access is not supported
Solution Approach 1:
The patent segments the data structure into atomic operations that can be independently transformed and merged. Each operation is broken down into discrete units that can be applied, undone, and re-applied in different orders without affecting data consistency, enabling unblocked collaboration while maintaining reliability
Solution Approach 2:
The patent changes the parameter of operation transformation from traditional conflict-based merging to operational transformation with history logs. By tracking the state and order of atomic operations rather than relying on locking mechanisms, the system enables offline collaboration and unblocked access while maintaining data consistency through mathematical transformation rules
2Reliability
If concurrent changes from multiple users are merged using traditional methods, then data consistency may be maintained, but user intentions are lost and conflicts require manual resolution
Solution Approach 1:
The patent applies preliminary action by recording the history and context of each atomic operation before merging occurs. The system preserves the original user intentions, operation sequences, and transformation states in history logs, allowing automatic merging that respects user intent while maintaining data consistency without manual conflict resolution
3Reliability
If linear undo mechanisms are used to revert changes, then data integrity is maintained, but users cannot selectively undo their own changes without affecting others' work
Solution Approach 1:
The patent segments the undo operation into user-specific atomic units. Each user's changes are tracked as independent atomic operations with their own history logs, allowing selective undo of individual user's changes without affecting other users' work while maintaining data integrity through transformation rules
Solution Approach 2:
The patent introduces history logs as an intermediary layer between users and the data structure. The history log records all atomic operations with their contexts, allowing the system to selectively apply or revert specific user operations while maintaining overall data consistency through transformation mediation
4Productivity
If automatic saving is implemented to prevent data loss, then user productivity is improved, but publishing changes to others is delayed and requires manual intervention
Solution Approach 1:
The patent applies preliminary action by automatically saving changes to the local history log immediately without requiring manual user action. This auto-save mechanism preserves all changes locally with full transformation context, allowing users to publish changes to others at their convenience without data loss or productivity interruption
Data Source
AI summary
The consistency of a data structure is maintained where changes in the form of atomic operations are requested by more than one user to an object graph containing a plurality of objects. Operational transformations specifying how one atomic operation is transformed against another one are accessed and the object graph is modified with the first and second set of changes by employing the operational transformations on the atomic operations and applying the resulting transformed operations to the object graph. The transformed operations are recorded in a history log. The atomic operations are object operations that create or delete an object of the object graph and/or property operations changing a property of an object. Each operation retains the identifier of the object it acts on and information on each change of the object resulting from the operation. Multi-operation conflicts are resolved by defined conflict resolution events.


