Zum Inhalt springen
Platz sichern

Relay: Speicherlos heißt nicht arbeitslos

Warum das Relay (Serverweg) keine Datei behält und trotzdem Speicher und CPU braucht, und wie Rückstau es begrenzt hält.

Beim Relay (Serverweg) müssen beide Endpunkte gleichzeitig erreichbar sein. Der Dienst authentisiert und autorisiert sie, bindet sie an denselben Versuch und leitet begrenzte Binärnachrichten weiter. Dateibytes berühren weder Objektspeicher noch den Nachrichtenbus. Endpunktzuordnung, Budgets, laufende Rechteprüfung und Abbruch bleiben erforderlich.

Speicherlos heißt: Es wird nie eine Datei geschrieben, nicht „ohne Arbeitsspeicher“. Socketpuffer, Framepuffer und begrenzte Verarbeitung brauchen Arbeitsspeicher. Backpressure, also Rückstau vom langsamen Empfänger, sorgt dafür, dass die Kette den Sender bremst, statt die ganze Datei in einer unbeschränkten Warteschlange zu sammeln.

DiagrammEin begrenzter Relayweg mit RückstauDiagramm: Der Sender sendet über einen HTTPS-/WebSocket-Proxy an einen autorisierten Relaykanal und weiter an den Empfänger. Kann der Empfänger gerade weniger aufnehmen, läuft ein begrenzter Rückstau über Relay und Proxy zurück, und der Sender wird gebremst.
  1. SenderVerschlüsselte FramesDateidatenHTTPS-/WebSocket-Proxy
  2. HTTPS-/WebSocket-ProxyBegrenzte WeiterleitungDateidatenAutorisierter Relaykanal
  3. Autorisierter RelaykanalVerschlüsselte FramesDateidatenEmpfänger
  4. EmpfängerKann gerade weniger aufnehmenAlternativer WegAutorisierter Relaykanal
  5. Autorisierter RelaykanalBegrenzter RückstauAlternativer WegHTTPS-/WebSocket-Proxy
  6. HTTPS-/WebSocket-ProxyDer Sender wird gebremstAlternativer WegSender

Warum kann dabei trotzdem CPU-Last entstehen?

CPU-Last auf einem Relay ist Paketverarbeitung und TLS, keine Dateientschlüsselung. Der Host bearbeitet Netzwerkpakete, TLS am HTTPS-Endpunkt, WebSocket-Frames, Kopien zwischen Puffern, Systemaufrufe und Prozessaufweckungen. Bei kleinen Frames oder zusätzlichen Proxyhops kann dieser Verwaltungsaufwand relevant sein, obwohl keine AES-Dateientschlüsselung auf dem Server stattfindet.

Das Relay verwendet Puffer wieder und bündelt kleine Socketwrites. Größere begrenzte Schreibpuffer sind keine neue Dateiablage und kein Anlass, Rechteprüfungen, Zeitgrenzen oder Backpressure abzuschalten. Mehr Serverkerne helfen mehreren gleichzeitigen Verbindungen; sie versprechen nicht, dass ein einzelner serieller Datenpfad schneller wird.

Ein Prozessausfall kann den Kanal beenden. Das Relay ist ein Livekanal, kein Postfach: Fällt eine Seite weg, wird mit einem neuen Versuch nach demselben Auftrag fortgesetzt.