DAG Replication for Consistent State Without Locking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed computing environments, managing application state changes becomes challenging due to increased failure events, network latency, and complexity, with traditional techniques either leading to performance bottlenecks or requiring 'stop-the-world' pauses, which are problematic for latency-sensitive applications.
Innovation Solution
A dynamic directed acyclic graph (DAG) of replication nodes is established to manage application state changes, allowing for fault-tolerant and efficient propagation of state transitions without the need for synchronization, using acceptor, intermediary, and committer nodes, and a configuration manager that propagates configuration-delta messages asynchronously.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If locking mechanisms are used to manage application state changes, then consistency of application state is improved, but system performance deteriorates due to performance bottlenecks
Solution Approach 1:
The patent extracts the locking mechanism from the state propagation process entirely. Instead of using locks to ensure consistency, the system uses a DAG-based replication architecture where state changes are propagated asynchronously through ordered execution of configuration-delta messages. Each node independently processes state changes based on the inherent ordering in the DAG structure, eliminating the need for centralized locking while maintaining consistency.
Solution Approach 2:
The patent introduces configuration-delta messages as intermediaries that carry state change information through the DAG network. These messages serve as mediators between the primary node and replica nodes, enabling consistent state propagation without direct locking interactions. The messages encode the necessary ordering and consistency information, allowing nodes to process changes independently while maintaining global consistency.
2Reliability
If locking mechanisms are used to manage application state changes, then consistency of application state is improved, but device complexity increases
Solution Approach 1:
The patent removes the locking mechanism entirely from the system architecture. Instead of adding complex locking protocols to manage consistency, the system uses the DAG structure's inherent properties (topological ordering, message passing) to ensure consistent state propagation. Each node independently processes configuration-delta messages in the correct order, achieving consistency without any locking infrastructure.
3Reliability
If state information is propagated among application components, then application state consistency is improved, but system availability deteriorates due to stop-the-world periods
Solution Approach 1:
The patent performs preliminary actions by pre-ordering state changes in the DAG structure before propagation. Configuration-delta messages are created with embedded ordering information that reflects the correct execution sequence. This preliminary ordering allows replica nodes to process state changes immediately upon receipt without pausing application operations, as the execution order is already determined by the DAG's topological structure.
Solution Approach 2:
The patent enables continuous propagation of state information through the DAG network without interrupting application operations. The asynchronous message passing mechanism allows state changes to flow continuously from the primary node to replica nodes while the application continues to serve requests. There are no stop-the-world periods because the DAG structure and message ordering ensure consistency is maintained during continuous operation.
4Adaptability or versatility
If the number of servers in distributed application increases, then application scalability is improved, but failure event rate increases
Solution Approach 1:
The patent segments the distributed application into independent nodes organized in a DAG structure. Each node (primary or replica) operates independently, processing state changes locally and propagating them through the DAG. This segmentation isolates failures to individual nodes without affecting the entire system. When a node fails, the DAG structure allows other nodes to continue processing and propagating state changes, maintaining system reliability as the application scales.
Data Source
AI summary
In response to a read request directed to a first data store of a storage group, a state transition indicator is identified, corresponding to a modification that has been applied at the data store before a response to the read is prepared. A read descriptor that includes the state transition indicator and read repeatability verification metadata is prepared. The metadata can be used to check whether the read request is a repeatable read. The read descriptor is transmitted to a client-side component of the storage group.


