A failover method and system is provided for a computer system having at least
three nodes operating as a cluster. One method includes the steps of detecting
failure of one node, determining the weight of at least two surviving nodes, and
assigning a failover node based on the determined weights of the surviving nodes.
Another method includes the steps detecting failure of one node and determining
the time of failure, and assigning a failover node based in part on the determined
time of failure. This method may also include the steps of determining a time period
during which nodes in the cluster are heavily utilized, and assigning a failover
node that is not heavily utilized during that time period.