什么是崩溃循环?

Tay*_*ark 8 sysadmin crash reliability distributed-system

我正在阅读谷歌的网站可靠性工程书,并遇到了我以前从未听说过的崩溃循环这个词,也无法找到定义

“如果一个任务尝试使用比它请求的更多的资源,Borg 会终止该任务并重新启动它(因为一个缓慢崩溃循环的任务通常比一个根本没有重新启动的任务更可取?)。“

什么是崩溃循环,如果有的话,它与无限循环相比如何?

GMa*_*ckG 13

崩溃循环是指进程崩溃并由看门狗守护进程无限期地重新启动。

也就是说,历史是:

  • 过程在时间 T 开始。
  • 进程在时间 T+1 崩溃。
  • 看门狗守护进程重新启动进程。
  • 进程在时间 T+2 开始。
  • 进程在时间 T+3 崩溃。
  • 看门狗守护进程重新启动进程。
  • 进程开始……等等。

这里看门狗守护进程是Borg,进程被封装成一个任务。


一般来说,在分布式计算中,如果你希望某件事最终成功,你必须写下你要完成它的意图,并且你需要一个工作人员不断循环以按照这个意图采取行动。这是工作项的“至少一次交付”。

在这里,意图是任务运行(写到 Borg 中),而 Borg 本身正在运行不断尝试确保任务运行的循环。这就是为什么当任务崩溃时,它会重新启动。当一个任务反复崩溃时,你最终会遇到一个崩溃循环。