Attribute-Based Dependency Graph for Synchronization Ordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data synchronization methods often fail to ensure that changes are applied in the correct order, leading to inconsistencies and violations of file system constraints, particularly in multi-user editing scenarios where changes depend on each other.

Innovation Solution

A system and method for synchronizing a local object model with a remote object model that involves receiving changes, identifying required attribute states, building a dependency graph, and generating an ordered list of changes to ensure correct application order, while detecting and removing cycles in the dependency graph to prevent inconsistencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If changes are synchronized without order verification, then synchronization speed is improved, but data consistency deteriorates

Engineering Contradiction:
Improvesynchronization speedVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary analysis of change dependencies before synchronization by building a dependency graph that identifies required attribute states and outcome attribute states. This preliminary ordering ensures that when changes are applied during synchronization, they follow the correct sequence without requiring verification at each step, thus maintaining data consistency while enabling fast parallel execution of independent changes.

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If dependency analysis is performed on all changes, then ordering accuracy is improved, but processing complexity worsens

Engineering Contradiction:
Improveordering accuracyVSAvoidprocessing complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The system segments the dependency analysis process into distinct phases: (1) identifying required attribute states for each change, (2) identifying outcome attribute states produced by each change, (3) building the dependency graph by matching outcomes to requirements, and (4) detecting cycles. This segmentation allows the system to handle complex dependency analysis in manageable steps, reducing processing complexity while maintaining ordering accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system extracts only the critical dependency information needed for ordering by focusing on attribute state relationships. Instead of analyzing all aspects of each change, it extracts specifically the required attribute states and outcome attribute states, building a simplified dependency graph that captures essential ordering constraints without the complexity of full change analysis.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If cycle detection is implemented, then data integrity is improved, but synchronization time worsens

Engineering Contradiction:
Improvedata integrityVSAvoidsynchronization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs cycle detection as a preliminary step before synchronization by traversing the dependency graph to identify cyclic dependencies. By detecting cycles in advance and resolving them through topological sorting or cycle-breaking algorithms, the system ensures data integrity is maintained while avoiding the need for repeated verification during the actual synchronization process, thus minimizing synchronization time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4089548B1Attribute-based dependency identification for operation ordering
Publication Date: 2023.08.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP4089548B1 patent drawingFigure 1
  • EP4089548B1 patent drawingFigure 2
  • EP4089548B1 patent drawingFigure 3

AI summary

Systems, components, devices, and methods for synchronizing a local object model with a remote object model are provided. A non-limiting example is a system or method for synchronizing a local object model with a remote object model. The method includes receiving a plurality of changes associated with the local object model. The changes modify at least one attribute state of an object in the local object model. The method also includes identifying outcome attribute states of the objects that are modified by the plurality of changes. The method includes identifying required attribute states of the objects for the plurality of changes. The method also includes building a dependency graph for the plurality of changes based on the identified required attribute states and generating an ordered list of the plurality of changes based on the dependency graph.