public final class AbfsClientThrottlingIntercept
extends Object
Throttles Azure Blob File System read and write operations to achieve maximum
throughput by minimizing errors. The errors occur when the account ingress
or egress limits are exceeded and the server-side throttles requests.
Server-side throttling causes the retry policy to be used, but the retry
policy sleeps for long periods of time causing the total ingress or egress
throughput to be as much as 35% lower than optimal. The retry policy is also
after the fact, in that it applies after a request fails. On the other hand,
the client-side throttling implemented here happens before requests are made
and sleeps just enough to minimize errors, allowing optimal ingress and/or
egress throughput.