Distributed Computation Infrastructure Using In-Memory State Replication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing distributed computing systems lack solutions for providing strong consistency guarantees and high availability in computations, especially in the presence of failures or load balancing, and typically rely on file-based or specialized stores for intermediate results, which are not scalable or efficient.
Innovation Solution
A distributed computation infrastructure that uses a replica set within a fabric-based architecture, where a primary compute node and secondary nodes maintain the same state and perform transactions, ensuring consistency through replication and failover mechanisms, allowing for stateful and stateless computations to be performed reliably and efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If state replication is implemented to ensure consistency when nodes fault, then reliability is improved, but device complexity increases
Solution Approach 1:
The patent implements state replication by creating copies of the computational state across multiple nodes in the distributed system. When a node faults, the replicated state enables another node to take over, ensuring consistency guarantees without requiring complex manual intervention for each failure scenario.
Solution Approach 2:
The system performs preliminary replication of state before failures occur, maintaining ready-to-use copies on secondary nodes. This preliminary action ensures that when a primary node fails, the system can immediately failover to a secondary node with the necessary state, avoiding the need for complex recovery procedures.
2Reliability
If file-based stores are used for intermediate results, then reliability is improved, but productivity decreases
Solution Approach 1:
The patent replaces file-based storage systems with in-memory computational state structures. This substitution eliminates the I/O bottlenecks and performance overhead associated with disk-based file stores while maintaining reliability through replicated memory state across distributed nodes.
3Reliability
If specialized stores are used for intermediate results, then reliability is improved, but device complexity increases
Solution Approach 1:
The patent creates a universal in-memory state structure that serves multiple functions: storing intermediate computational results, maintaining transaction logs, and enabling failover. This eliminates the need for specialized store infrastructure while providing the same reliability guarantees through the replicated state machine approach.
4Manufacturing precision
If operators wait for all inputs before starting, then consistency is improved, but productivity decreases
Solution Approach 1:
The system performs preliminary validation and preparation of input data structures before computation begins. By pre-processing inputs and establishing consistency checks in advance, the system can proceed with computation without blocking on input availability, maintaining both consistency and productivity.
Solution Approach 2:
The replicated state machine enables continuous computation by allowing operators to proceed with available inputs while maintaining consistency through the replicated state. The system continues useful computational actions without interruption, using the replicated state to ensure data consistency even when inputs arrive asynchronously.
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
The present invention extends to methods, systems, and computer program products for performing computations in a distributed infrastructure. Embodiments of the invention include a general purpose distributed computation infrastructure that can be used to perform efficient (in-memory), scalable, failure-resilient, atomic, flow-controlled, long-running state-less and state-full distributed computations. Guarantees provided by a distributed computation infrastructure can build upon existent guarantees of an underlying distributed fabric in order to hide the complexities of fault-tolerance, enable large scale highly available processing, allow for efficient resource utilization, and facilitate generic development of stateful and stateless computations. A distributed computation infrastructure can also provide a substrate on which existent distributed computation models can be enhanced to become failure-resilient.