summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorFelix Moessbauer <felix.moessbauer@siemens.com>2024-11-08 15:04:17 +0100
committerFelix Moessbauer <felix.moessbauer@siemens.com>2024-11-18 13:44:49 +0100
commit7b9dea5a7c43fd91bcd23d1585d39a726d098285 (patch)
tree6593c258f9d4e5ae5a0e34df35087b09bd1e24e4 /doc
parentdb57773a96d1108bdad78ff3d1359a88d9689912 (diff)
http: use Retry-After HTTP header to optimize retries
Some mirrors like snapshot.debian.org apply strict http rate limits. While apt already has an exponential backoff mechanism implemented, this is not sufficient due to the following reasons: 1. all retries happen roughly at the same time 2. the retry-after information from the server is not used We fix this by improving the algorithm: First, if present, the timestamp or duration of the Retry-After header is added to the exponential backoff, optimizing for success-on-second-try. Second, a random delay is added (delay += [0, delay]) to distribute the retries to not immediately run into the limit again. To avoid super-long delays, this is capped by the configured maximum delay. This logic only becomes active if the option Acquire::Retries::HandleRetryAfter is enabled. Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/examples/configure-index1
1 files changed, 1 insertions, 0 deletions
diff --git a/doc/examples/configure-index b/doc/examples/configure-index
index 72ce1fe3a..feadca8d2 100644
--- a/doc/examples/configure-index
+++ b/doc/examples/configure-index
@@ -249,6 +249,7 @@ Acquire
Delay "<BOOL>" { // whether to backoff between retries using the delay: method
Maximum "<INT>"; // maximum number of seconds to delay an item per retry
};
+ HandleRetryAfter "<BOOL>"; // whether to respect the wait time of the Retry-After header
};
Source-Symlinks "<BOOL>";
ForceHash "<STRING>"; // hashmethod used for expected hash: sha256, sha1 or md5sum