This is an implementation of Phi Accrual Failure Detector.
To reduce the memory footprint, pings or intervals aren't actually stored but only two values to calculate normal distribution are maintained. This not only reduces the memory footprint to the constant value but also the computational cost for each ping down to constant.
Why does the memory footprint matter? Think about your application communicates with thousand of remote servers and you want to maintain failure detector for each server. Apparently, it is too wasting to cost 100MB to only for the failure detector.
Normal distribution from the ping history.
Set of recent N ping intervals.