class PhiAccrualFailureDetector extends FailureDetector
Implementation of 'The Phi Accrual Failure Detector' by Hayashibara et al. as defined in their paper: [http://www.jaist.ac.jp/~defago/files/pdf/IS_RR_2004_010.pdf]
The suspicion level of failure is given by a value called φ (phi). The basic idea of the φ failure detector is to express the value of φ on a scale that is dynamically adjusted to reflect current network conditions. A configurable threshold is used to decide if φ is considered to be a failure.
The value of φ is calculated as:
φ = -log10(1 - F(timeSinceLastHeartbeat)where F is the cumulative distribution function of a normal distribution with mean and standard deviation estimated from historical heartbeat inter-arrival times.
- Alphabetic
- By Inheritance
- PhiAccrualFailureDetector
- FailureDetector
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- 
      
      
      
        
      
    
      
        
        new
      
      
        PhiAccrualFailureDetector(config: Config, ev: EventStream)
      
      
      Constructor that reads parameters from config. Constructor that reads parameters from config. Expecting config properties named threshold,max-sample-size,min-std-deviation,acceptable-heartbeat-pauseandheartbeat-interval.
- 
      
      
      
        
      
    
      
        
        new
      
      
        PhiAccrualFailureDetector(threshold: Double, maxSampleSize: Int, minStdDeviation: FiniteDuration, acceptableHeartbeatPause: FiniteDuration, firstHeartbeatEstimate: FiniteDuration)(implicit clock: Clock)
      
      
      - threshold
- A low threshold is prone to generate many wrong suspicions but ensures a quick detection in the event of a real crash. Conversely, a high threshold generates fewer mistakes but needs more time to detect actual crashes 
- maxSampleSize
- Number of samples to use for calculation of mean and standard deviation of inter-arrival times. 
- minStdDeviation
- Minimum standard deviation to use for the normal distribution used when calculating phi. Too low standard deviation might result in too much sensitivity for sudden, but normal, deviations in heartbeat inter arrival times. 
- acceptableHeartbeatPause
- Duration corresponding to number of potentially lost/delayed heartbeats that will be accepted before considering it to be an anomaly. This margin is important to be able to survive sudden, occasional, pauses in heartbeat arrivals, due to for example garbage collect or network drop. 
- firstHeartbeatEstimate
- Bootstrap the stats with heartbeats that corresponds to to this duration, with a with rather high standard deviation (since environment is unknown in the beginning) 
- clock
- The clock, returning current time in milliseconds, but can be faked for testing purposes. It is only used for measuring intervals (duration). 
 
Value Members
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        !=(arg0: Any): Boolean
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        ##(): Int
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        +(other: String): String
      
      
      - Implicit
- This member is added by an implicit conversion from PhiAccrualFailureDetector to any2stringadd[PhiAccrualFailureDetector] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        ->[B](y: B): (PhiAccrualFailureDetector, B)
      
      
      - Implicit
- This member is added by an implicit conversion from PhiAccrualFailureDetector to ArrowAssoc[PhiAccrualFailureDetector] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        ==(arg0: Any): Boolean
      
      
      - Definition Classes
- AnyRef → Any
 
-  val acceptableHeartbeatPause: FiniteDuration
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        asInstanceOf[T0]: T0
      
      
      - Definition Classes
- Any
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        clone(): AnyRef
      
      
      - Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        ensuring(cond: (PhiAccrualFailureDetector) ⇒ Boolean, msg: ⇒ Any): PhiAccrualFailureDetector
      
      
      - Implicit
- This member is added by an implicit conversion from PhiAccrualFailureDetector to Ensuring[PhiAccrualFailureDetector] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        ensuring(cond: (PhiAccrualFailureDetector) ⇒ Boolean): PhiAccrualFailureDetector
      
      
      - Implicit
- This member is added by an implicit conversion from PhiAccrualFailureDetector to Ensuring[PhiAccrualFailureDetector] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        ensuring(cond: Boolean, msg: ⇒ Any): PhiAccrualFailureDetector
      
      
      - Implicit
- This member is added by an implicit conversion from PhiAccrualFailureDetector to Ensuring[PhiAccrualFailureDetector] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        ensuring(cond: Boolean): PhiAccrualFailureDetector
      
      
      - Implicit
- This member is added by an implicit conversion from PhiAccrualFailureDetector to Ensuring[PhiAccrualFailureDetector] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        eq(arg0: AnyRef): Boolean
      
      
      - Definition Classes
- AnyRef
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        equals(arg0: Any): Boolean
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        finalize(): Unit
      
      
      - Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
 
-  val firstHeartbeatEstimate: FiniteDuration
- 
      
      
      
        
      
    
      
        
        def
      
      
        formatted(fmtstr: String): String
      
      
      - Implicit
- This member is added by an implicit conversion from PhiAccrualFailureDetector to StringFormat[PhiAccrualFailureDetector] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        getClass(): Class[_]
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        hashCode(): Int
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        heartbeat(): Unit
      
      
      Notifies the FailureDetector that a heartbeat arrived from the monitored resource. Notifies the FailureDetector that a heartbeat arrived from the monitored resource. This causes the FailureDetector to update its state. - Definition Classes
- PhiAccrualFailureDetector → FailureDetector
- Annotations
- @tailrec()
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        isAvailable: Boolean
      
      
      Returns true if the resource is considered to be up and healthy and returns false otherwise. Returns true if the resource is considered to be up and healthy and returns false otherwise. - Definition Classes
- PhiAccrualFailureDetector → FailureDetector
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        isInstanceOf[T0]: Boolean
      
      
      - Definition Classes
- Any
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        isMonitoring: Boolean
      
      
      Returns true if the failure detector has received any heartbeats and started monitoring of the resource. Returns true if the failure detector has received any heartbeats and started monitoring of the resource. - Definition Classes
- PhiAccrualFailureDetector → FailureDetector
 
-  val maxSampleSize: Int
-  val minStdDeviation: FiniteDuration
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        ne(arg0: AnyRef): Boolean
      
      
      - Definition Classes
- AnyRef
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        notify(): Unit
      
      
      - Definition Classes
- AnyRef
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        notifyAll(): Unit
      
      
      - Definition Classes
- AnyRef
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        phi: Double
      
      
      The suspicion level of the accrual failure detector. The suspicion level of the accrual failure detector. If a connection does not have any records in failure detector then it is considered healthy. 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        synchronized[T0](arg0: ⇒ T0): T0
      
      
      - Definition Classes
- AnyRef
 
-  val threshold: Double
- 
      
      
      
        
      
    
      
        
        def
      
      
        toString(): String
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @throws( ... )
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long, arg1: Int): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @throws( ... )
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @throws( ... )
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        →[B](y: B): (PhiAccrualFailureDetector, B)
      
      
      - Implicit
- This member is added by an implicit conversion from PhiAccrualFailureDetector to ArrowAssoc[PhiAccrualFailureDetector] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc