Method and apparatus for election of group leaders in a distributed network
First Claim
1. A method for selecting a group leader among servers in a multicast network segment comprising the steps of:
- configuring a set of said servers to participate in electing a leader, each said server having a corresponding voting priority;
determining when a new leader is needed by configuring each server that is not currently the group leader to listen for periodic messages from said group leader;
adapting each server to send said periodic messages only if said server is currently the group leader;
waiting a configurable period after no periodic messages are heard; and
multicasting said voting priority to each participant;
said set of servers electing one server of said set to become said new leader by voting wherein voting is performed by sending a leadership claim message including a priority claim at an interval determined by strength of a claim a candidate has on becoming the group leader.
3 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a system and apparatus for efficient and reliable, control and distribution of data files in large-scale distributed networks. The members of a group of servers in a multicast network elect a group leader whenever a new group leader is required, as when the prior group leader become unavailable, as detected by absence of a periodic heartbeat message published by the leader. The election is carried out by a system of voting by each candidate whereby each candidate has a priority calculated from its configuration, and the server with the highest priority is configured to claim the leadership faster than the other candidates. As part of the claim, each candidate multicasts its priority. Each candidate that receives a multicast claim for leadership from another candidate compares its own priority against the claimant and only votes for itself if its own priority is higher. After a preconfigured period of hearing no other claimants with higher priority, the candidate with the highest priority becomes the new leader.
204 Citations
18 Claims
-
1. A method for selecting a group leader among servers in a multicast network segment comprising the steps of:
-
configuring a set of said servers to participate in electing a leader, each said server having a corresponding voting priority; determining when a new leader is needed by configuring each server that is not currently the group leader to listen for periodic messages from said group leader; adapting each server to send said periodic messages only if said server is currently the group leader; waiting a configurable period after no periodic messages are heard; and
multicasting said voting priority to each participant;said set of servers electing one server of said set to become said new leader by voting wherein voting is performed by sending a leadership claim message including a priority claim at an interval determined by strength of a claim a candidate has on becoming the group leader. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for determining a group leader among a group of servers comprising:
-
a set of participant servers including at least some servers capable of participating in electing a group leader; a communication channel from each participant to each other participant; a monitor process in each participant to determine which server is the current group leader; an election process in each participant to calculate a voting priority of said participant and to select a new group leader according to said voting priority, said election process triggered by said monitor process; wherein voting is performed by sending a leadership claim message including a priority claim at an interval determined by strength of a claim a candidate has on becoming the group leader; configuring each server that is not currently the group leader to listen for periodic messages from said group leader; adapting each server to send said periodic messages only if said server is currently the group leader; waiting a configurable period after no periodic messages are heard; and multicasting said voting priority to each participant. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system for determining a group leader among a group of servers comprising:
-
a set of participant servers including at least some servers capable of participating in electing a group leader; a communication channel from each participant to each other participant; a monitor process in each participant to determine which server is the current group leader; and an election process in each participant to calculate a voting priority of said participant and to select a new group leader according to said voting priority, said election process triggered by said monitor process, wherein said election process further comprises a state machine adapted to transition from a temporary state of group leader unknown to a stable state of either group leader known or group leader is me, according to the following steps; in said state of group leader unknown, if one or more group leader claim messages (LC) are received in which a received voting priority is greater than said calculated voting priority, then transition to a concession state and wait for a group leader alive message (LA); and
if no LC is received before a period determined by said calculated voting priority, or no received voting priority is greater than said calculated voting priority, then transmit an LC including said calculated voting priority, and transition to a voting open state;in said concession state, when an LA is received, transition to said group leader known state; in said voting open state, if no LC or LA is received for a predetermined time interval, then transition to said group leader is me state and transmit an LA; and
if one or more LC is received prior to said predetermined voting time interval, then transition to said group leader unknown state and transmit an LC; and
if an LA is received, then transition to said group leader known state;in said group leader is me state, periodically send an LA until an LC or LA is received, and then transition to said voting open state and send an LC; and in said group leader known state, upon a trigger from said monitor process, transition to said group leader unknown state and transmit an LC; whereby a participant having the highest calculated voting priority is elected group leader.
-
-
13. A method for determining registration of members of a cluster of servers on a network segment comprising the steps of:
-
(A) designating a group leader on said network segment; (B) each member sending a registration message to said group leader; (C) said group leader multicasting a registration report including an identifier corresponding to each registered member; (D) sending another registration message from any member receiving said registration report in which said member'"'"'s corresponding identifier is missing; (E) repeating steps (C) and (D) until each said member receives a registration report including its own corresponding identifier as a registered member; in which said step of designating said group leader is carried out among a set of servers of said cluster according to a voting priority determined by at least some of said members from a set of dynamic parameters measured within themselves; wherein voting is performed by sending a leadership claim message including a priority claim at an interval determined by strength of a claim a candidate has on becoming the group leader; configuring each server that is not currently the group leader to listen for periodic messages from said group leader; adapting each server to send said periodic messages only if said server is currently the group leader; waiting a configurable period after no periodic messages are heard; and multicasting said voting priority to each participant. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification