Consensus Method Using Timestamp and Decision Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveconsensus achievementVSAvoidsynchrony requirement
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

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

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveconsensus speedVSAvoidconsensus guarantee
Core Design Contradiction:
ProductivityVSReliability

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improveconsensus efficiencyVSAvoidplatform compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS7376867B1Method of seeking consensus among computer processes
Publication Date: 2008.05.20 HEWLETT PACKARD ENTERPRISE DEV LP
  • US7376867B1 patent drawing
  • US7376867B1 patent drawing
  • US7376867B1 patent drawing

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.