CRDT State Synchronization for IoT Layer Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In large-scale IoT applications, the distributed application stack often experiences inconsistencies due to devices sleeping, connectivity issues, or failures, leading to costly rebuilding of application states across multiple layers, which strains resources and causes excessive networking traffic.
Innovation Solution
The implementation of conflict-free convergent and commutative replicated data types (CRDTs) and a peer-populated intermediate caching scheme with loose coupling ensures eventual consistency and synchronization of state parameters across layers, using a star, mesh, or 2-level cache configuration to maintain session consistency and reconstruct the global application state.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If devices sleep or connectivity issues occur in distributed IoT applications, then energy saving and fault tolerance are improved, but application state consistency deteriorates
Solution Approach 1:
The system performs preliminary actions by maintaining application state information in memory before devices sleep or connectivity is lost. The state is preserved and can be quickly restored without full rebuilding, allowing devices to resume operations efficiently after waking or reconnection.
Solution Approach 2:
The patent creates copies of application state information and stores them in distributed memory across the network. When a device wakes or reconnects, it can retrieve its state copy from memory rather than rebuilding from scratch, maintaining consistency despite intermittent connectivity.
2Stability of the object's composition
If application state is rebuilt from ground up after reconnection, then state consistency is restored, but resource consumption and networking traffic increase excessively
Solution Approach 1:
The system performs preliminary actions by maintaining application state information in memory before devices sleep or connectivity is lost. The state is preserved and can be quickly restored without full rebuilding, allowing devices to resume operations efficiently after waking or reconnection.
Solution Approach 2:
Instead of performing a complete state rebuild (excessive action), the system performs only the necessary partial action of restoring state from preserved memory copies. This selective restoration consumes minimal resources while achieving the required consistency.
3Reliability
If complete application state rebuild is performed after failures, then reliability is improved, but productivity and operation resumption speed deteriorate
Solution Approach 1:
The system performs preliminary actions by maintaining application state information in memory before devices sleep or connectivity is lost. The state is preserved and can be quickly restored without full rebuilding, allowing devices to resume operations efficiently after waking or reconnection.
Solution Approach 2:
The patent extracts and separates the application state information from the running application processes, storing it independently in memory. This allows the state to be retrieved and restored without requiring the application to be fully reinitialized, significantly speeding up resumption while maintaining reliability.
Data Source
AI summary
A computing device operates a first thread for a first layer of a plurality of layers of an application that are operated by different threads. The computing device maintains a first parameter that is shared by the first layer of the application and a second layer of the application. The second layer is operated by a second thread that is identified by a first address. When the first parameter is locally updated at the first thread, the computing device updates a local copy of the first parameter at the first thread and providing the locally updated first parameter to the second thread by using the first address. When the first parameter is remotely updated at the second thread, the computing device receives the remotely updated first parameter and updating the local copy of the first parameter at the first thread based on the received remotely updated first parameter.


