Consensus Method Using Timestamp and Decision Arrays
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing consensus techniques in fault-tolerant distributed systems often fail to achieve consensus due to reliance on synchrony, message passing, or probabilistic methods, leading to potential system failures and inconsistencies.
Innovation Solution
A method that uses timestamp arrays and decision arrays to determine consensus decisions among computer processes, allowing for asynchronous execution and concurrent attempts, with the ability to handle concurrent attempts by returning an abort indicator and employing exponential back-off delays.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If message passing among processes is used to reach consensus, then consensus can be achieved in distributed systems, but the system requires synchrony between processes which reduces adaptability to asynchronous environments
Solution Approach 1:
The patent replaces the mechanical message-passing mechanism with shared memory access. Instead of processes exchanging messages that require coordination and timing, processes directly read and write to shared memory locations (timestamp array and decision array), eliminating the need for synchrony while maintaining consensus reliability
Solution Approach 2:
The patent introduces shared memory structures (timestamp array and decision array) as intermediaries between processes. These intermediaries allow processes to independently record their state and decisions without direct communication, enabling asynchronous operation while still achieving consensus through coordinated access to the shared structures
2Productivity
If probabilistic randomization is used for consensus, then consensus can be reached with high probability, but there remains a small probability that consensus is never achieved which reduces reliability
Solution Approach 1:
The patent performs preliminary actions by having each process save its proposed decision and timestamp to the shared arrays before attempting to determine consensus. This preliminary recording of state allows processes to independently verify consensus conditions without probabilistic guessing, ensuring deterministic consensus achievement
Solution Approach 2:
The patent enables processes to self-determine consensus by independently checking the shared memory structures for consensus conditions. Each process can autonomously verify whether a consensus value exists by examining the timestamp and decision arrays, eliminating the need for probabilistic methods while maintaining fast consensus speed
3Productivity
If special shared-memory instructions are required for consensus, then consensus can be achieved efficiently, but the system loses adaptability to platforms without such instructions
Solution Approach 1:
The patent segments the consensus algorithm into basic read and write operations on shared memory. By breaking down the consensus logic into fundamental operations (saving timestamp, saving decision, checking consensus) rather than requiring atomic instructions, the algorithm becomes implementable on any platform with standard shared memory support
Solution Approach 2:
The patent uses simple, universally available shared memory structures (arrays of timestamps and decisions) instead of expensive or platform-specific atomic instructions. These basic memory operations are universally supported and sufficient for implementing consensus, providing both efficiency and broad platform compatibility
Data Source
AI summary
An embodiment of a method of seeking consensus among computer processes begins with a first step of saving a new timestamp in a timestamp array for a particular process. The method continues with a second step of determining whether a most recent entry in a decision array includes a previously established consensus decision. In a third step, if the most recent entry does not include the previously established consensus decision, the method saves a proposed decision as a consensus decision. Otherwise, in a fourth step, the method saves the previously established consensus decision as the consensus decision. In a fifth step, if a most recent timestamp in the timestamp array continues to be the new timestamp, the method returns the consensus decision. Otherwise, in a sixth step, the method returns an abort indicator.


