Backpressure
Backpressure anpassar inflödet av data till mottagarens bearbetningskapacitet genom signaler om att sakta ned eller pausa.
Backpressure är återkoppling från en belastad mottagare till datakällan tidigare i kedjan om att skicka mindre data eller pausa. Ett bearbetningssteg kan därmed anpassa inflödet till sin kapacitet.
I en fiktiv import läser källan 120 poster per sekund medan databasen bearbetar 40. Vid konstanta hastigheter och utan bortkastade poster växer kön med 80 poster per sekund. En större buffert skjuter upp problemet. Backpressure får källan att läsa långsammare eller pausa tills bearbetningen hinner med.
Förmedla paussignalen
I en fungerande skrivström i Node.js innebär returvärdet false från .write() att avsändaren ska vänta med fler datablock. Det redan överlämnade blocket skickas inte igen av det skälet. Efter drain kan fler block följa; fel och stängda strömmar måste hanteras separat. Bufferttröskeln highWaterMark är ingen fast övre gräns för den totala minnesanvändningen.
Signalen hjälper bara om tidigare steg respekterar den och begränsar sina egna buffertar. Om källan inte kan bromsas behöver applikationen också begränsa hur mycket arbete den tar emot och bestämma hur överbelastning ska hanteras. Rate limiting anger en tillåten anropsfrekvens; backpressure reagerar på mottagningskapaciteten i dataflödet.
Källor
Relaterade begrepp
- MeddelandeköEn meddelandekö buffrar meddelanden tills en konsument hämtar dem för bearbetning.
- Rate limitingEn anropsgräns anger hur ofta en klient får skicka anrop enligt en bestämd regel.
- Cache stampedeEn cache stampede uppstår när samtidiga cachemissar startar samma kostsamma beräkning eller datafråga flera gånger.
- Race conditionEtt felaktigt resultat som beror på tidsordningen mellan överlappande åtkomster.
- MinnesläckaMinne som inte längre behövs hålls kvar i onödan under drift.
- SamtidighetAtt organisera flera uppgifter så att deras behandlingstider kan överlappa.
Ditt projekt med ASES
Beskriv ditt projekt för oss. Vi hör av oss med en första bedömning.