Distributed Graph Consistency via Primitive Operation Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing real-time collaboration technologies face challenges in synchronizing distributed graph structures across multiple participants, particularly in handling concurrent changes and conflicts, which can lead to diverged models and errors due to the complexity of operational transformations.
Innovation Solution
The implementation provides methods for synchronizing distributed graph structures by using primitive operations that can be grouped into complex operations, with operational transformations applied to reconcile conflicts and maintain model consistency across participants, allowing for domain-independent and scalable real-time collaboration.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If operational transformations are applied to handle concurrent changes in distributed graph structures, then model consistency across participants is improved, but the complexity of the synchronization system increases
Solution Approach 1:
The patent segments complex graph operations into primitive operations (insert node, insert edge, delete node, delete edge). Each primitive operation is independently transformable, making the operational transformation process more manageable and less complex while maintaining model consistency across distributed participants.
Solution Approach 2:
The patent changes the parameter representation by using vector clocks to track operation timestamps and dependencies. This parameter transformation enables efficient conflict detection and resolution without requiring complex transformation logic, thereby improving model consistency while controlling system complexity.
2Ease of operation
If primitive operations are grouped into complex operations for domain-specific manipulation, then the ease of operation is improved, but the difficulty of detecting and measuring conflicts increases
Solution Approach 1:
Complex domain-specific operations are segmented into sequences of primitive operations. Each primitive operation maintains its own timestamp and dependency information, enabling conflict detection at the primitive level even when operations are grouped into complex sequences for user convenience.
Solution Approach 2:
The patent introduces an intermediary transformation layer that operates on primitive operations. This intermediary mechanism handles conflict detection and resolution using vector clocks and operational transformation rules, shielding users from conflict complexity while maintaining ease of operation for complex grouped operations.
3Speed
If identical copies of the graph structure are replicated at each participant's site, then the speed of access is improved, but the loss of information increases due to concurrent changes
Solution Approach 1:
The patent implements feedback mechanisms where each operation is timestamped with vector clocks that track dependencies across participants. When operations are exchanged between sites, the vector clock information provides feedback about operation ordering and conflicts, enabling accurate reconciliation and preventing information loss despite concurrent modifications to replicated copies.
Solution Approach 2:
Operations are prepared with timestamp and dependency information before being transmitted to other participants. This preliminary action ensures that when copies diverge due to concurrent changes, the pre-tagged operations can be accurately transformed and merged without losing information about the original state and intended modifications.
Data Source
AI summary
The present disclosure is directed to systems and methods including retrieving a model including a plurality of objects and references between objects, receiving first user input indicating a set of first changes to the model, applying changes of the set of first changes to the model to provide a first modified model, receiving second user input indicating a set of second changes to the model, identifying a conflicting operation in the set of first changes to the set of second changes, applying one or more inverse operations to the first modified model to provide a second modified model, removing the conflicting operation from the set of first changes, defining a subset of first changes including the one or more changes after the conflicting operation, reconciling one or more changes to provide a reconciled subset of first changes, and defining an updated model.


