On Saturday, 8 February 2014 at 16:41:42 UTC, Paulo Pinto wrote:

In the stock exchange there are Java and .NET systems doing transactions at faster speed than that.

100ms is too much money to be lost if the transaction course changes.

It might be worth referring back to Don's talk at least year's D conference. His company does targeted advertising, and if I remember correctly, their entire transaction response time limit including time on the wire is around 40ms. It's small amounts rather than potentially millions per transaction, but either way, for many network services these days, profit is directly tied to exceedingly rapid response time.

Even for cloud services, let's say a user is willing to accept a 500ms transaction time, including transport. Now let's say the could service has to talk to 5 other services to process the request, each which has a normal transaction time of 50ms. If one occasionally spikes to 250ms, that's a problem for that one request, but it's an even bigger problem for all the requests piling up behind it, since in this case the entire process is blocking on a garbage collection. Under very heavy load, the process may not even be able to recover. You can see this in Netty for Java, as it has a fixed request queue size (defaults to like 5) and once this limit is reached it just starts rejecting requests. A long collection means request failures.

Reply via email to