IP Library › Granted Patent US 11,593,210
Granted Patent B2
US 11,593,210 · App. 17/136,563 · Granted Feb 28, 2023

Leader election in a distributed system based on node weight and leadership priority based on network performance

Inventors: Diman Zad Tootaghaj (Milpitas, CA); Puneet Sharma (Palo Alto, CA); Faraz Ahmed (Milpitas, CA); Michael Zayats (Santa Clara, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F11/1425G06F9/5072G06F9/5077G06F9/5083G06K9/6223G06F11/187G06F2209/505G06F2209/508
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,593,210
App. No.
17/136,563
Granted
Feb 28, 2023
Kind
B2
Abstract

Example implementations relate to consensus protocols in a stretched network. According to an example, a distributed system includes continuously monitoring network performance and/or network latency among a cluster of a plurality of nodes in a distributed computer system. Leadership priority for each node is set based at least in part on the monitored network performance or network latency. Each node has a vote weight based at least in part on the leadership priority of the node. Each node's vote is biased by the node's vote weight. The node having a number of biased votes higher than a maximum possible number of votes biased by respective vote weights received by any other node in the cluster is selected as a leader node.

Claims (31)

1. A method comprising:

continuously monitoring network performance and/or network latency among a cluster of a plurality of nodes coupled in communication via a network in a distributed computer system;

setting a leadership priority for each node based at least in part on the monitored network performance and/or network latency, each node having a vote weight based at least in part on the leadership priority of the node, a vote of each node being biased by the vote weight of the node; and

selecting one of the plurality of nodes to become a leader node during an election, the selected leader node receiving a number of votes higher than a maximum possible number of votes biased by respective vote weights received by any other node in the cluster.

2. The method of claim 1 , wherein a vote weight of 0 for a node prevents the node from becoming the leader node.

3. The method of claim 1 , comprising setting the vote weight for a node based on a geographical location of the node.

4. The method of claim 1 , comprising setting the vote weight for a node based on network latency of the node from other nodes.

5. The method of claim 1 , comprising setting the vote weight for a node based on an amount of computing resources of the node.

6. The method of claim 1 , comprising changing the vote weight of a node during run-time of the cluster based at least in part on the monitored network performance and/or network latency.

7. The method of claim 1 , comprising electing a new leader node for the cluster based at least in part on changes in leadership priorities represented by the vote weights.

8. The method of claim 1 , comprising periodically sending a heartbeat signal by the leader node to other nodes and calling an election when a node does not receive a heartbeat signal for a predetermined amount of time.

9. The method of claim 1 , wherein the plurality of nodes comprise a high-availability (HA) stretch cluster.

10. The method of claim 1 , comprising setting a write weight for each node, the write weight to be used by the leader node to determine confirmation of a weighted quorum of nodes before committing a write by a node during the election.

11. The method of claim 1 , comprising setting the leadership priority of a node based at least in part on network end-to-end latency, the node being assigned to one of a majority cluster and a minority cluster based at least in part on round trip time (RTT) between the node and other nodes in the cluster.

12. The method of claim 1 , comprising setting the leadership priority of a node based at least in part on geographic location of the node, the node being assigned to one of a majority cluster and a minority cluster based at least in part on K means clustering to categorize nodes into the majority cluster or the minority cluster based on geographic location.

13. The method of claim 1 , comprising setting the leadership priority of a node based at least in part on a normalized round trip time (RTT) between the node and other nodes in the cluster.

14. A non-transitory machine-readable medium storing instructions executable by a processing resource of a distributed system comprising a plurality of nodes coupled in communication via a network, the non-transitory machine-readable medium comprising instructions when executed to:

continuously monitor network performance and/or network latency among a cluster of a plurality of nodes coupled in communication via a network in a distributed computer system;

set a leadership priority for each node based at least in part on the monitored network performance and/or network latency, each node having a vote weight based at least in part on the leadership priority of the node, a vote of each node being biased by the vote weight of the node; and

select one of the plurality of nodes to become a leader node during an election, the selected leader node receiving a number of votes higher than a maximum possible number of votes biased by respective vote weights received by any other node in the cluster.

15. The non-transitory machine-readable medium of claim 14 , comprising instructions to:

set a write weight for each node, the write weight to be used by the leader node to determine confirmation of a weighted quorum of nodes before committing a write by a node during the election.

16. The non-transitory machine-readable medium of claim 14 , comprising instructions to:

set the leadership priority of a node based at least in part on network end-to-end latency, the node being assigned to one of a majority cluster and a minority cluster based at least in part on round trip time (RTT) between the node and other nodes in the cluster.

17. A system comprising:

a performance monitor to continuously monitor network performance and/or network latency among a cluster of a plurality of nodes coupled in communication via a network in a distributed computer system;

a leadership priority controller to set a leadership priority for each node based at least in part on the monitored network performance or network latency, each node having a vote weight based at least in part on the leadership priority of the node, a vote of each node being biased by the node's vote weight; and

a leader election controller to select one of the plurality of nodes to become a leader node during an election, the selected leader node receiving a number of votes higher than a maximum possible number of votes biased by respective vote weights received by any other node in the cluster.

18. The system of claim 17 , the leadership priority controller to set the vote weight for a node based on a geographical location of the node.

19. The system of claim 17 , the leadership priority controller to set the vote weight for a node based on network latency of the node from other nodes.

20. The system of claim 17 , the leadership priority controller to set the vote weight for a node based on an amount of computing resources of the node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2020
From: ZAD TOOTAGHAJ, DIMAN; SHARMA, PUNEET; AHMED, FARAZ; ZAYATS, MICHAEL
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 054766/0980 →
Continuity (1)
Related Publication 20220206900A1 · Jun 30, 2022
Cited By (1)
US 12,499,249