論文筆記:[SRDS 2004] The Phi Accrual Failure Detector
這篇論文目的在於提高 failure detector 準確率。failure detector 的一種常見模式是 heartbeat,如果 heartbeat timeout 則認為對端失效。實際使用中,由於網路延遲的抖動,會導致誤判。論文中使用如下方法提高基於 heartbeat 探測方式的準確率:
- 假設 heartbeat message 符合某一概率模型。例如定期發送的 heartbeat message 在有網路延遲的情況下,接收到消息的 interval 符合正態分布。
- 利用接收到的歷史數據(滑動窗口),對概率模型參數進行極大似然估計。
- 利用估計得出的參數帶入模型,計算在當前時刻接收到 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:分散式系統 |