Strategie im Umgang mit Wiederholungen

Strategie für Wiederholungen

Es gibt mehrere Gründe, warum gsutil-Vorgänge fehlschlagen können. Einige Vorgänge sind nicht wiederholbar und erfordern, dass der Nutzer Maßnahmen ergreift. Beispiele für solche Gründe sind:

  • Ungültige Anmeldedaten.
  • Das Netzwerk ist nicht erreichbar, da Probleme mit der Proxykonfiguration aufgetreten sind.
  • Der Zugriff wurde verweigert, da der Bucket oder das Objekt, das Sie verwenden möchten, eine ACL hat, die die auszuführende Aktion verhindert.
  • Einzelne Vorgänge, die innerhalb eines Befehls fehlschlagen, der Vorgänge parallel ausführt (d. h. Befehle mit dem übergeordneten Flag "-m").

In anderen Fällen können Vorgänge nach Fehlern wiederholt werden – vorübergehende Netzwerkfehler, HTTP-Fehlercodes vom Typ 429 und 5xx sowie HTTP-Fehlercodes vom Typ 408 bei fortsetzbaren Uploads. In diesen Fällen versucht gsutil eine Wiederholung nach der Strategie eines abgeschnittenen binären exponentiellen Backoffs:

  • Abwarten eines zufälligen Zeitraums zwischen [0–1] Sekunden und Wiederholen des Vorgangs.
  • Bei einem Fehlschlag: Abwarten eines zufälligen Zeitraums zwischen [0–2] Sekunden und Wiederholen des Vorgangs.
  • Bei einem weiteren Fehlschlag: Abwarten eines zufälligen Zeitraums zwischen [0–4] Sekunden und Wiederholen des Vorgangs.
  • Dies wird in der Form bis zu einer konfigurierbaren Höchstanzahl an Wiederholungsversuchen (Standard = 23) fortgesetzt.

Dabei ist jeder Wiederholungszeitraum durch einen konfigurierbaren maximalen Zeitraum (Standard = 60 Sekunden) begrenzt.

Standardmäßig führt gsutil Wiederholungsversuche 23 Mal im Verlauf von 1+2+4+8+16+32+60… Sekunden durch, was ungefähr 10 Minuten entspricht. Sie können die Anzahl der Wiederholungsversuche und die maximale Verzögerung für jeden einzelnen Wiederholungsversuch anpassen. Bearbeiten Sie dafür im Abschnitt "[Boto]" der .boto-Konfigurationsdatei die Konfigurationsvariablen num_retries (Anzahl der Wiederholungsversuche) und max_retry_delay (maximale Verzögerung für Wiederholungsversuche). Die meisten Nutzer müssen diese Werte nicht ändern.

Für Datenübertragungen (die Befehle "gsutil cp" und "gsutil rsync") bietet gsutil zusätzliche Funktionen für Wiederholungen in Form von fortsetzbaren Übertragungen. Eine Übertragung, die aufgrund eines vorübergehenden Fehlers unterbrochen wurde, kann im Allgemeinen neu gestartet werden, ohne von vorne beginnen zu müssen. Weitere Informationen dazu finden Sie im Abschnitt zu fortsetzbaren Übertragungen von gsutil help cp.