Backpressure
Backpressure stemt de instroom van gegevens af op de verwerkingscapaciteit van de ontvanger via signalen om te vertragen of te pauzeren.
Backpressure is de terugkoppeling waarmee een drukbezette ontvanger de gegevensbron eerder in de keten vraagt minder gegevens te sturen of tijdelijk te pauzeren. Een verwerkingsstap kan zo de instroom aanpassen aan zijn capaciteit.
Bij een fictieve import leest de bron 120 records per seconde en verwerkt de database er 40. Bij constante snelheden en zonder records weg te gooien groeit de achterstand met 80 records per seconde. Een grotere buffer stelt het probleem uit. Backpressure laat de bron langzamer lezen of pauzeren totdat de verwerking kan volgen.
Het pauzesignaal doorgeven
Bij een werkende Node.js-schrijfstream betekent de retourwaarde false van .write() dat de afzender moet wachten met nieuwe gegevensblokken. Het al aangeboden blok wordt om die reden niet opnieuw verstuurd. Na drain kunnen nieuwe blokken volgen; fouten en gesloten streams vragen om aparte afhandeling. De bufferdrempel highWaterMark is geen harde bovengrens voor het totale geheugengebruik.
Het signaal helpt alleen als eerdere stappen het respecteren en hun eigen buffers begrenzen. Kan de bron niet vertragen, dan moet de toepassing ook de toelating van werk begrenzen en vastleggen wat er bij overbelasting gebeurt. Rate limiting bepaalt een toegestane aanvraagsnelheid; backpressure reageert op de opnamecapaciteit binnen de gegevensstroom.
Bronnen
Verwante begrippen
- Message queueEen message queue buffert berichten totdat een consument ze voor verwerking ophaalt.
- Rate limitingEen verzoeklimiet bepaalt hoe vaak een client binnen een bepaalde regel verzoeken mag sturen.
- Cache stampedeEen cache stampede ontstaat wanneer gelijktijdige cachemissers dezelfde dure berekening of gegevensopvraag herhaaldelijk starten.
- Race conditionEen fout resultaat hangt af van de tijdsvolgorde van overlappende toegang.
- GeheugenlekNiet meer nodig geheugen blijft tijdens gebruik onnodig vastgehouden.
- ConcurrencyMeerdere taken zo organiseren dat hun verwerkingsperioden kunnen overlappen.
Uw project met ASES
Beschrijf ons uw project. We nemen contact met u op met een eerste inschatting.