I means that if one Server behind Glacier2 runs very slowly, then other Servers will be affected in some circumstance.Originally Posted by marc
Please have a look at the attach file first. This is my explanation:
Suppose there are many threads in each Client sending requests to different Servers (Server1/Server2) simultaneously We know that in Glacier2, there is a RequestQueue1 corresponding to Client1, and that all requests from Client1 are cached in RequestQueue1.
Suppose there are 3 requests in RequestQueue1 now: request-a(to Server1) , request-b(to Server2) , request-c(to Server2) . If Server1 runs very slowly for some reason and has no time to receive requests on the wire, the AMI call (request-a) to Server1 in RequestQueue1 will be blocked and other requests (request-b/reqeust-c) to other Servers(Server2) will have to wait. That is, the slowing Server1 has a bad effect on other Servers(Server2). It’s very terrible.
Now every Client has a corresponding RequestQueue in Glacier2 and all requests to different Servers from the same Client are mixed in a RequestQueue. I think that this is the core of problem. Maybe if we put all requests to the same Server from different Clients in a RequestQueue instead of putting all requests to different Servers from the same Client in a RequestQueue can solve the problem.

Reply With Quote
.
