dev@glassfish.java.net

Re: InstanceState service : getting the state of an instance

From: Joseph Fialli <joe.fialli_at_oracle.com>
Date: Thu, 08 Jul 2010 13:48:12 -0400

  To answer other questions on this thread.

GMS has an enum for member states.

https://shoal.dev.java.net/nonav/docs/api/com/sun/enterprise/ee/cms/spi/MemberStates.html

ALIVE corresponds to an application server just starting up and joining
cluster. This state is not ready to receive client traffic.
READY or ALIVEANDREADY member state corresponds to when an application
server is up and ready to receive client traffic.

*****
As Bobby pointed out, the default glassfish cluster configuration for
gms heartbeat failure detection takes 6 seconds
of missed heartbeats before declaring a member instance as INDOUBT. The
default glassfish cluster configuration then
waits 1.5 seconds to validate that a INDOUBT member is truely DEAD by
explicitly pinging the instance (over TCP). Either
the member reponds to the ping (meaning it was under very heavy load and
the heartbeats are just not making it out) or
the member does not respond to the ping, then the instance is declared
Failed. (GMS notification is FailureNotificationSignal)
and the state of the instance is marked as DEAD. So the period of time
between a kill -9 and GMS having the correct status
has a lag of 7.5 seconds. In 6 seconds, GMS has detected that a killed
instance is SUSPECT.

Further tuning of the default glassfish cluster parameters for heartbeat
failure detection could alter the time it takes for
GMS to detect an instance has failed. But there is a balance, the
quicker the detection, the higher the probablility of
detecting FAILURE when the instance is not failed, the instance is
merely overloaded with work or network latency could result
in a false detection of FAILURE.

-Joe

On 7/8/10 12:05 PM, Bobby Bissett wrote:
>> On 7/7/10 3:12 PM, Byron Nevins wrote:
>>> GMS will handle updating the state of stand-alone instances?
>>> Perfectly?
>>
>> That is my understanding. Joe / Bobby can confirm that
>
> Kinda depends on your meaning of "perfectly." GMS listens for a
> heartbeat signal, and you can configure the timing of the heartbeat (I
> think the default is 2 seconds) and the number of heartbeats missed
> (default=3) before it's suspected that an instance is unavailable.
>
> Cheers,
> Bobby
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>