標籤:

論文筆記:[SRDS 2004] The Phi Accrual Failure Detector

這篇論文目的在於提高 failure detector 準確率。failure detector 的一種常見模式是 heartbeat,如果 heartbeat timeout 則認為對端失效。實際使用中,由於網路延遲的抖動,會導致誤判。論文中使用如下方法提高基於 heartbeat 探測方式的準確率:

  1. 假設 heartbeat message 符合某一概率模型。例如定期發送的 heartbeat message 在有網路延遲的情況下,接收到消息的 interval 符合正態分布。
  2. 利用接收到的歷史數據(滑動窗口),對概率模型參數進行極大似然估計。
  3. 利用估計得出的參數帶入模型,計算在當前時刻接收到 heartbeat message 的概率

區別於傳統方法,此時不直接得出對端是否存活的判斷,而是直接向上層應用返回這一概率,由上層應用自行進行解釋,是這篇論文中提出的另一個「亮點"。

這一方法在 Akka 和 Cassandra 中均有所應用和改進:

[CASSANDRA-2597] inconsistent implementation of cumulative distribution function for Exponential Distribution

akka-remote/PhiAccrualFailureDetector.scala

此外,如果通過 gossip 的 heartbeat 信息來檢測對端狀態,其概率模型可能是泊松(隨機)過程。(CASSANDRA-2597)

N. Hayashibara, X. Defago, R. Yared, and T. Katayama, 「The /spl phi/ accrual failure detector,」 Proc. 23rd IEEE Int. Symp. Reliab. Distrib. Syst. 2004., pp. 66–78, 2004.

推薦閱讀:

快速打造分散式深度學習訓練平台
用zookeeper來構建的一種一致性副本協議
閱讀筆記:PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs
集群資源調度系統設計架構總結

TAG:分散式系統 |