Client Voter Leader Election for Partition-Tolerant Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed computing systems with an even number of nodes face challenges in leader election and fault tolerance, particularly during network partitions, leading to potential cluster unavailability, as they cannot elect a leader when split equally, and existing solutions require additional nodes or external entities, increasing costs and complexity.

Innovation Solution

The system incorporates client devices as voting members to participate in leader elections, effectively creating an odd number of voting members, allowing for leader election even in evenly split clusters and improving fault tolerance without requiring external nodes, ensuring that the elected leader is available to a majority of clients.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a distributed computing system uses an even number of server nodes, then the system reduces hardware costs and simplifies deployment, but the system cannot elect a leader during network partitions resulting in cluster unavailability

Engineering Contradiction:
Improvenumber of server nodesVSAvoidleader election capability during network partition
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent introduces client devices as intermediary voting members that mediate the leader election process. When servers are evenly split during a network partition, client voters serve as the deciding factor to break the tie and enable leader election, thus resolving the contradiction between using an even number of servers and maintaining reliability during partitions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If additional server nodes are added to enable leader election during network partitions, then the system achieves fault tolerance, but the system increases hardware costs and device complexity

Engineering Contradiction:
Improvefault tolerance during network partitionVSAvoidcluster configuration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent makes client devices serve multiple functions: they act as both service consumers and voting members in the leader election process. This multi-functionality allows the system to achieve fault tolerance without adding dedicated voting nodes, thereby avoiding increased hardware costs and device complexity while maintaining reliability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Stability of the object's composition

If the system requires a majority quorum of servers for leader election, then the system ensures consensus safety, but the system prevents leader election when servers are evenly split during network partition

Engineering Contradiction:
Improveconsensus agreementVSAvoidleader election success rate
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent extends the voting dimension from only servers to include client devices. When servers are evenly split (1D problem), adding the client voting dimension creates a new decision space where the majority can be determined, thus maintaining consensus safety while improving leader election success rate during partitions.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10944637B2System and/or method for maintaining highly-available, consistent, partition-tolerant clusters using client voters
Publication Date: 2021.03.09 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10944637B2 patent drawing
  • US10944637B2 patent drawing
  • US10944637B2 patent drawing

AI summary

Certain example embodiments relate to a distributed computing system including servers organized in a cluster and clients. One server is elected leader and is responsible for maintaining consensus information among the other servers. Each server is configured to determine whether a new leader election is to take place. If so, the respective server requests votes for a new leader from the other server(s) and determines whether it has won by a clear majority. Depending on the implementation, votes from eligible client devices are counted, either in a main election together with server votes, or in a tie-break election (if needed) after server votes. Once a server has won, the other servers are informed accordingly. It therefore is possible to maintain a highly-available, consistent, partition-tolerant cluster in the distributed computing systems, using client voters.