# Data-Driven Packet Loss Estimation for Node Healthy Sensing in Decentralized Cluster
## 4 The PingBasedDown Algorithm
### Decision Model
#### 4.2.2 Leader Determination Module
\begin{array}{c}V_{m}\\ 2\end{array} \right)\right)\), it will find the set \(V_{R}\) to be:

\[V_{R}=\{v:v\
ot\in V_{m}\} \tag{31}\]

## 5 Performance Evaluation

### Simulation Setup

#### 5.1.1 Baseline Methods

We compare our evaluation model with four algorithms as follows: (1) \(\Phi\) accrual failure detector (PFD) [8] is a commonly used adaptive failure detector, which assumes that the interval of heartbeat responses follows normal distribution. Specifically, they define a metric of link state \(\phi\) by \(\phi=-\log_{10}(1-F(timeSinceLastHearbeat))\), where \(F\) is the cumulative distribution function of a normal distribution with mean and standard deviation estimated from historical heartbeat inter-arrival times. By comparing \(\phi\) with a threshold \(T_{\phi}\), it gives out the state of a link. (2) Exponential Distribution Failure Detector (EDFD) is an adaptive failure detector [9], which assumes the interval of heartbeat responses follows exponential distribution. Specifically, it defines a metric of link state \(E_{d}\) by \(E_{d}=F(timeSinceLastHearbeat)\), where \(F(t)=1-e^{-\frac{1}{\mu}t}\). By comparing \(E_{d}\) with a threshold \(T_{\mathit{edr}}\), it gives out the state of a link. (3) 2 WFD is an adaptive failure detector [10] that optimizes the Chen FD [7]. It uses two windows with different sizes, i.e., size of \(n_{1}\) and \(n_{2}\), to store the interval of recent heartbeats. By comparing current time \(T_{\mathit{now}}\) and the predicted time \(\tau_{l+1}=\max(EA_{l+1}^{n_{1}},EA_{l+1}^{n_{2}})+\alpha\), it gives out the state of a link. In the formula above, \(EA_{l+1}^{n_{1}}\) and \(EA_{l+1}^{n_{1}}\) are the next heartbeat expected time calculated from the two windows respectively. (4) Calculating the coefficient of variation of network latency is an approach to evaluate the severity of packet loss rate of a link. It quantifies the jitter \(C\) by calculating the coefficient of variation of the collected RTTs. The coefficient of variation is calculated by: \(C=\frac{\varphi}{\mu}\), where \(\sigma\) stands for the standard deviation, and \(\mu\) stands for the mean value. By comparing \(C\) with a threshold \(T_{c}\), it gives out the state of a link. We denote this algorithm as CV. Also, we denote our proposed algorithm as AV. We also compare our system-level testing results with a simulated controller cluster. In the simulated controller cluster, we implement a cluster of nodes which uses the original Downing mechanism, namely AutoDown, which we have already discussed before (Recall Table 2). #### 5.1.2 Evaluation Metrics

In order to measure the correctness of the link evaluation methods compared with the true link state, we use a well-established and widely-used metric in binary classification to quantify the detection accuracy, i.e., F1-score [25]. Specifically, F1-score is defined based on precision rate and recall rate [25]. Precision rate can be expressed as \(P(M_{h},N_{h})=\frac{\mathcal{M}_{h}}{\mathcal{N}_{h}}\). We denote \(\mathcal{M}_{h}\) to be the number of healthy markers on a healthy link while \(\mathcal{N}_{h}\) is the number of evaluations on this link. Then, recall rate can be expressed as \(R(M_{f},N_{f})=\frac{\mathcal{M}_{f}}{\mathcal{N}_{f}}\). We denote \(\mathcal{M}_{f}\) to be the number of unhealthy markers on a unhealthy link while \(\mathcal{N}_{f}\) is the number of evaluations on this faulty link. Based on them, F1 score is defined as: \(F1=\frac{2\times P\times R}{P+R}\). A higher \(F1\) score indicates a better performance on an evaluating approach. To measure the performance of system-level testing results, we focus on the detection rate and mis-kicking rate. The detection rate \(\mathcal{R}_{D}\) indicates the speed to detect and remove faulty nodes in the cluster. Because in our testing environment, once a faulty node is kicked, it will restart immediately and it takes about \(T_{\mathit{setup}}=2\) min to startup.