A system and apparatus for control and distribution of data files in
large-scale distributed networks. Members of a group of servers in a
multicast network elect a group leader whenever a new group leader is
required, as detected by absence of a periodic message published by the
leader. 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.