Search Results for

    Show / Hide Table of Contents

    Class PhiAccrualFailureDetector

    Implementation of 'The Phi Accrual Failure Detector' by Hayashibara et al. as defined in their paper: [http://ddg.jaist.ac.jp/pub/HDY+04.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.

    Inheritance
    object
    FailureDetector
    PhiAccrualFailureDetector
    Inherited Members
    FailureDetector.DefaultClock
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Akka.Remote
    Assembly: Akka.Remote.dll
    Syntax
    public class PhiAccrualFailureDetector : FailureDetector

    Constructors

    | Edit this page View Source

    PhiAccrualFailureDetector(Config, EventStream)

    Constructor that reads parameters from config. Expecting config properties named 'threshold', 'max-sample-size', 'min-std-deviation', 'acceptable-heartbeat-pause', and 'heartbeat-interval'.

    Declaration
    public PhiAccrualFailureDetector(Config config, EventStream ev)
    Parameters
    Type Name Description
    Config config

    The HOCON configuration for the failure detector.

    EventStream ev

    The Akka.Remote.PhiAccrualFailureDetector.EventStream for this ActorSystem.

    | Edit this page View Source

    PhiAccrualFailureDetector(Clock)

    Protected constructor to be used for sub-classing only.

    Declaration
    protected PhiAccrualFailureDetector(Clock clock)
    Parameters
    Type Name Description
    Clock clock

    The clock used fo marking time.

    | Edit this page View Source

    PhiAccrualFailureDetector(double, int, TimeSpan, TimeSpan, TimeSpan, Clock)

    Procedural constructor for PhiAccrualDetector

    Declaration
    public PhiAccrualFailureDetector(double threshold, int maxSampleSize, TimeSpan minStdDeviation, TimeSpan acceptableHeartbeatPause, TimeSpan firstHeartbeatEstimate, Clock clock = null)
    Parameters
    Type Name Description
    double 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

    int maxSampleSize

    Number of samples to use for calculation of mean and standard deviation of inter-arrival times.

    TimeSpan 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.

    TimeSpan 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.

    TimeSpan 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 clock

    The clock, returning current time in milliseconds, but can be faked for testing purposes. It is only used for measuring intervals (duration).

    Properties

    | Edit this page View Source

    Address

    Address introduced as a mutable property in order to avoid shuffling around API signatures

    Declaration
    public string Address { get; set; }
    Property Value
    Type Description
    string
    | Edit this page View Source

    IsAvailable

    TBD

    Declaration
    public override bool IsAvailable { get; }
    Property Value
    Type Description
    bool
    Overrides
    FailureDetector.IsAvailable
    | Edit this page View Source

    IsMonitoring

    TBD

    Declaration
    public override bool IsMonitoring { get; }
    Property Value
    Type Description
    bool
    Overrides
    FailureDetector.IsMonitoring

    Methods

    | Edit this page View Source

    HeartBeat()

    TBD

    Declaration
    public override void HeartBeat()
    Overrides
    FailureDetector.HeartBeat()

    Extension Methods

    ObjectExtensions.IsDefaultForType<T>(T)
    ObjectExtensions.AsOption<T>(T)
    Extensions.AsInstanceOf<T>(object)
    In this article
    • githubEdit this page
    • View Source
    Back to top
    Contribute
    • Project Chat
    • Discussion Forum
    • Source Code
    Support
    • Akka.NET Support Plans
    • Akka.NET Observability Tools
    • Akka.NET Training & Consulting
    Maintained By
    • Petabridge - The Akka.NET Company
    • Learn Akka.NET