主要观点:人们常认为 Erlang 监督者与重启相关,在复杂生产系统中,重试操作是处理瞬态故障的好方法,监督者不仅是重启,其启动阶段是同步的,若子进程崩溃会不断重试,很多开发者主张监督者有冷却期但作者反对,监督进程在初始化阶段应提供稳定状态,对于不同情况(如本地或远程数据库)应采取不同策略,客户端调用者应决定能容忍多少失败,监督者应重启到稳定已知状态。
关键信息:
- Jim Gray 称系统处理瞬态 bug 的平均故障间隔时间(MTBF)更好的因素为 4。
- Erlang 监督者启动阶段同步,子进程崩溃会不断重试。
- 作者反对监督者有冷却期,认为应保证初始化后的进程稳定。
- 对于本地数据库可强制初始化时建立连接,远程则预期连接失败。
- 客户端调用者决定能容忍的失败,监督者应重启到稳定状态。
重要细节: - 文中提到了 Bohrbug 和 Heisenbug 等概念。
- 说明了在不同情况下(如网络分裂)客户端的处理方式。
- 举例说明了在不同问题空间中如何处理客户端错误。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。