Distributed Sequencer Service for Causal State Ordering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Asynchronous distributed computing systems face challenges in maintaining causal ordering of events across multiple computing nodes without a central clock, leading to increased complexity and resource intensity as the system scales.
Innovation Solution
A distributed computing system with multiple computing nodes, each equipped with a sequencer and monitor service, uses a global logical clock to annotate and maintain a totally ordered state, ensuring reliable causal delivery through shared memory and internal communication, allowing for efficient multi-core processing and failover protection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If asynchronous distributed computing systems use logical clocks to maintain causal ordering across multiple computing nodes, then causal delivery of events is achieved, but system complexity and resource intensity increase as the system scales
Solution Approach 1:
The system divides the distributed computing network into multiple computing nodes, each independently maintaining its own logical clock and local event queue. This segmentation allows each node to handle causal ordering independently rather than requiring centralized coordination, reducing overall system complexity while maintaining causal delivery guarantees across the distributed system
Solution Approach 2:
The patent introduces an intermediary mechanism where computing nodes exchange timestamped events through a standardized protocol. This intermediary layer abstracts the complexity of causal ordering, allowing nodes to maintain reliability through logical clocks without directly managing the full complexity of inter-node coordination
2Loss of information
If computing nodes maintain complete causal ordering of all events in the distributed system, then total system state visibility is achieved, but resource intensity increases with system scale
Solution Approach 1:
Each computing node maintains complete causal ordering information locally for its own events and receives selective updates from other nodes. Instead of every node storing and processing all system-wide events, each node focuses on maintaining accurate local state while receiving only relevant updates, reducing memory and processing resource intensity while preserving necessary system state visibility
Solution Approach 2:
The system implements partial causal ordering where nodes maintain complete ordering for their local events but receive selective updates from other nodes based on causal dependencies. This partial action approach avoids the excessive resource cost of maintaining complete global state at every node while ensuring sufficient visibility for correct event processing
3Productivity
If multiple computing nodes process events simultaneously without centralized coordination, then processing throughput increases, but contentions on shared resources increase
Solution Approach 1:
Each computing node independently manages its own event processing queue and logical clock without requiring centralized coordination. Nodes autonomously determine which events to process next based on their local state and received updates, eliminating bottlenecks and reducing resource contention while maintaining high processing throughput across the distributed system
Solution Approach 2:
Computing nodes pre-process and queue events locally as they occur, maintaining their own logical clocks and event histories in advance. This preliminary local processing allows nodes to handle events immediately upon arrival without waiting for centralized coordination, increasing throughput while minimizing contention on shared resources
Data Source
AI summary
An asynchronous distributed computing system with a plurality of computing nodes is provided. One of the computing nodes includes a sequencer service that receives updates from the plurality of computing nodes. The sequencer service maintains or annotates messages added to the global state of the system. Updates to the global state are published to the plurality of computing nodes. Monitoring services on the other computing nodes write the updates into a locally maintained copy of the global state that exists in shared memory on each one of the nodes. Client computer processes on the nodes may then subscribe to have updates “delivered” to the respective client computer processes.


