org.jgroups.protocols

Class FD

public class FD extends Protocol

Failure detection based on simple heartbeat protocol. Regularly polls members for liveness. Multicasts SUSPECT messages when a member is not reachable. The simple algorithms works as follows: the membership is known and ordered. Each HB protocol periodically sends an 'are-you-alive' message to its *neighbor*. A neighbor is the next in rank in the membership list, which is recomputed upon a view change. When a response hasn't been received for n milliseconds and m tries, the corresponding member is suspected (and eventually excluded if faulty).

FD starts when it detects (in a view change notification) that there are at least 2 members in the group. It stops running when the membership drops below 2.

When a message is received from the monitored neighbor member, it causes the pinger thread to 'skip' sending the next are-you-alive message. Thus, traffic is reduced.

When we receive a ping from a member that's not in the membership list, we shun it by sending it a NOT_MEMBER message. That member will then leave the group (and possibly rejoin). This is only done if shun is true.

Version: $Revision: 1.31 $

Author: Bela Ban

Nested Class Summary
static classFD.FdHeader
Method Summary
voiddown(Event evt)
intgetCurrentNumTries()
StringgetLocalAddress()
intgetMaxTries()
StringgetMembers()
StringgetName()
intgetNumberOfHeartbeatsSent()
intgetNumSuspectEventsGenerated()
StringgetPingableMembers()
StringgetPingDest()
longgetTimeout()
voidinit()
booleanisShun()
StringprintSuspectHistory()
voidresetStats()
voidsetMaxTries(int max_tries)
booleansetProperties(Properties props)
voidsetShun(boolean flag)
voidsetTimeout(long timeout)
voidstop()
voidup(Event evt)

Method Detail

down

public void down(Event evt)

getCurrentNumTries

public int getCurrentNumTries()

getLocalAddress

public String getLocalAddress()

getMaxTries

public int getMaxTries()

getMembers

public String getMembers()

getName

public String getName()

getNumberOfHeartbeatsSent

public int getNumberOfHeartbeatsSent()

getNumSuspectEventsGenerated

public int getNumSuspectEventsGenerated()

getPingableMembers

public String getPingableMembers()

getPingDest

public String getPingDest()

getTimeout

public long getTimeout()

init

public void init()

isShun

public boolean isShun()

printSuspectHistory

public String printSuspectHistory()

resetStats

public void resetStats()

setMaxTries

public void setMaxTries(int max_tries)

setProperties

public boolean setProperties(Properties props)

setShun

public void setShun(boolean flag)

setTimeout

public void setTimeout(long timeout)

stop

public void stop()

up

public void up(Event evt)
Copyright ? 1998-2005 Bela Ban. All Rights Reserved.