这是关于保证的

主要观点:人们常认为 Erlang 监督者与重启相关,在复杂生产系统中,重试操作是处理瞬态故障的好方法,监督者不仅是重启,其启动阶段是同步的,若子进程崩溃会不断重试,很多开发者主张监督者有冷却期但作者反对,监督进程在初始化阶段应提供稳定状态,对于不同情况(如本地或远程数据库)应采取不同策略,客户端调用者应决定能容忍多少失败,监督者应重启到稳定已知状态。
关键信息:

  • Jim Gray 称系统处理瞬态 bug 的平均故障间隔时间(MTBF)更好的因素为 4。
  • Erlang 监督者启动阶段同步,子进程崩溃会不断重试。
  • 作者反对监督者有冷却期,认为应保证初始化后的进程稳定。
  • 对于本地数据库可强制初始化时建立连接,远程则预期连接失败。
  • 客户端调用者决定能容忍的失败,监督者应重启到稳定状态。
    重要细节:
  • 文中提到了 Bohrbug 和 Heisenbug 等概念。
  • 说明了在不同情况下(如网络分裂)客户端的处理方式。
  • 举例说明了在不同问题空间中如何处理客户端错误。
阅读 12
0 条评论