Skip to content
Phi-Accrual Failure Detector
step 1/5

Reading — step 1 of 5

Read

~1 min readFailure Detection

Phi-Accrual Failure Detector

Binary alive/dead is too brittle. φ-accrual detector (Hayashibara et al. 2004): output a CONFIDENCE value.

Each heartbeat arrival is logged. Inter-arrival times form a distribution. When you query "is X alive?", compute:

φ(t) = -log10(P_later(t - last_heartbeat))

Where P_later(d) is the probability that a normal heartbeat takes longer than d seconds. Use the inter-arrival distribution.

φ values:

  • 0: heartbeat is on time
  • 1: 90% confident node is dead
  • 2: 99%
  • 3: 99.9%
  • ...

Configurable threshold (typically φ > 8) triggers "node is dead". Adapts to network conditions: if heartbeats normally take 100ms, a 200ms gap is suspicious. If they normally take 5s, a 200ms gap is fine.

Used by Cassandra, Akka cluster, Hazelcast.

Why is this better than fixed-timeout?

  • A bursty network with occasional 1s gaps doesn't trigger false positives.
  • A normally-instant network with a 100ms gap DOES trigger.

Adaptiveness > fixed thresholds.

Discussion

Ask a question, share an insight, or help someone who’s stuck.

Sign in to post a comment or reply.

Loading…