【问题标题】:Understanding omission failure in distributed systems了解分布式系统中的遗漏失败
【发布时间】:2012-08-27 02:00:13
【问题描述】:
以下文字说明了这一点,我不太同意:
客户端 C 向服务器 S 发送请求 R。通信链路通过该链路传输 R 所用的时间为 D。P 是 S 接收、处理和回复 R 所需的最长时间。如果遗漏失败是假设;那么如果在 2(D+P) 内没有收到对 R 的回复,那么 C 将永远不会收到对 R 的回复。
为什么这里的时间是 2(D+P)。据我了解,它不应该是 2D+P 吗?
【问题讨论】:
标签:
client-server
distributed-computing
【解决方案1】:
通过超时检测到由于进程崩溃或由于通信链路故障而导致的遗漏故障。
但是在异步系统中,超时只是一个进程没有响应的指示。由于处理负载过重,其他进程可能已崩溃或刚刚变慢。
所以通常我们选择一个最大时间作为超时。所以这可能是2(D+P),而不是你严格的2D+P。最大时间允许考虑网络变得拥塞,因此响应返回较慢/进程中的处理速度较慢以及处理客户端从传入缓冲区读取消息并执行的响应R 的时间处理需要将其传递到应用程序级别。
因此,我无法准确地告诉您书中的公式中的哪些帐户,但我可以告诉您,尽管在超时时我们并不像您期望的那样严格。