Distributed Shared Memory for Device Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing front-end application synchronization techniques are computationally expensive and inefficient, particularly in near real-time scenarios, as they often rely on centralized data persistence and complex algorithms, leading to increased load on servers and devices, and require pixel-by-pixel data transmission or turn-based user interactions.

Innovation Solution

A distributed shared memory system that uses event-based synchronization to maintain multiple instances of front-end applications across compute devices, allowing for near real-time updates without a central master copy, reducing computational costs by processing data locally and eliminating the need for complex collision avoidance techniques.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If centralized data persistence is used to maintain application state across devices, then synchronization reliability is improved, but server load and computational cost increase

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidserver load
Core Design Contradiction:
ReliabilityVSUse of energy by stationary object

Solution Approach 1:

The system segments the centralized persistence model into distributed peer-to-peer connections. Each device maintains its own application state locally and establishes direct connections with other devices, eliminating the need for a centralized server to store and manage all data. This segmentation reduces server load while maintaining synchronization reliability through distributed consensus mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements local quality by allowing each device to maintain its own copy of the application state locally rather than relying on centralized storage. Each device independently manages its local state and propagates changes to connected peers, reducing the computational burden on central servers while ensuring data availability and synchronization reliability.

Inventive Principle:
Principle #3Local quality

2Manufacturing precision

If pixel-by-pixel data transmission is used to synchronize screen content, then visual synchronization accuracy is improved, but bandwidth consumption and processing time increase

Engineering Contradiction:
Improvevisual synchronization accuracyVSAvoidsynchronization delay
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The system extracts only the essential state data from the application rather than transmitting complete pixel-by-pixel screen content. By identifying and transmitting only the critical state variables that define the application's visual output, the system achieves accurate visual synchronization with minimal data transmission, reducing both bandwidth consumption and synchronization delay.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of transmitting original pixel data, the system creates and transmits compact copies of the application state that can be reconstructed into visual content at the receiving end. This copying approach maintains visual synchronization accuracy while dramatically reducing the amount of data that needs to be transmitted compared to pixel-by-pixel transmission.

Inventive Principle:
Principle #26Copying

3Stability of the object's composition

If complex collision avoidance algorithms are implemented to prevent action conflicts in collaborative applications, then data consistency is improved, but computational complexity and processing overhead increase

Engineering Contradiction:
Improvedata consistencyVSAvoidalgorithm complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The system implements dynamic conflict resolution by allowing multiple devices to operate independently with their own state changes, and only resolving conflicts when necessary through peer-to-peer negotiation. Rather than using static complex algorithms to prevent all possible conflicts, the system dynamically resolves only the actual conflicts that arise, reducing computational complexity while maintaining data consistency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Each device performs self-service by independently managing its own state changes and only engaging in conflict resolution when its changes conflict with other devices. This self-service approach eliminates the need for complex centralized conflict avoidance algorithms, as each device handles its own conflicts locally through simple negotiation protocols with its peers.

Inventive Principle:
Principle #25Self-service

4Reliability

If turn-based interaction rules are used to coordinate user actions, then action collision prevention is improved, but user interaction responsiveness and real-time collaboration capability deteriorate

Engineering Contradiction:
Improveaction collision preventionVSAvoidcollaboration efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system inverts the traditional turn-based approach by allowing all users to interact simultaneously without enforced turns. Instead of preventing collisions through sequential access, the system allows parallel interactions and resolves conflicts through distributed consensus mechanisms, thereby maintaining action collision prevention while dramatically improving collaboration efficiency and real-time responsiveness.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS9971826B1Methods and apparatus for a distributed shared memory for device synchronization
Publication Date: 2018.05.15 SYNCRTC INC
  • US9971826B1 patent drawing
  • US9971826B1 patent drawing
  • US9971826B1 patent drawing

AI summary

In some embodiments, an apparatus includes a memory having an instance of a distributed shared memory and a processor operatively coupled to the memory. The processor is configured to instantiate a first instance of a front-end application and receive, at the first instance of the front-end application, and input signal associated with a state of the first instance of the front-end application. The processor is configured to insert a value into a field data structure defined in the instance of the distributed shared memory and associated with an event source configured through a second instance of the distributed shared memory. The processor is configured to generate an event object indicative of the value inserted into the field data structure and send a signal to update the second instance of the front-end application.