Backpressure
El backpressure adapta el flujo de datos entrante a la capacidad del receptor mediante señales para reducir el ritmo o hacer una pausa.
Backpressure es la señal con la que un receptor saturado pide a la fuente situada antes en el flujo que envíe menos datos o se detenga temporalmente. Así, una etapa de procesamiento adapta la entrada a su capacidad.
En una importación ficticia, la fuente lee 120 registros por segundo y la base de datos procesa 40. Con ritmos constantes y sin descartar registros, el trabajo pendiente crece en 80 registros por segundo. Un búfer mayor aplaza el problema. Backpressure hace que la fuente lea más despacio o se detenga hasta que el procesamiento pueda seguir el ritmo.
Transmitir la señal de pausa
En un flujo de escritura de Node.js que funciona correctamente, el valor false devuelto por .write() indica que se debe pausar el envío de nuevos bloques. El bloque ya entregado no se vuelve a enviar por ese motivo. Tras drain pueden enviarse más bloques; los errores y los flujos cerrados requieren un tratamiento aparte. El umbral del búfer highWaterMark no es un límite estricto del uso total de memoria.
La señal solo sirve si las etapas anteriores la respetan y limitan sus propios búferes. Si la fuente no puede reducir el ritmo, la aplicación también debe limitar el trabajo admitido y definir qué hacer ante una sobrecarga. Rate limiting fija una frecuencia de solicitudes permitida; backpressure responde a la capacidad de recepción dentro del flujo.
Fuentes
Términos relacionados
- Cola de mensajesUna cola de mensajes almacena temporalmente mensajes hasta que un consumidor los toma para procesarlos.
- Limitación de solicitudesLa limitación de solicitudes fija, según una regla, con qué frecuencia puede un cliente enviar solicitudes.
- Cache stampedeUn cache stampede ocurre cuando solicitudes simultáneas no encuentran el mismo dato en caché y repiten el trabajo costoso.
- Condición de carreraUn error en el que el resultado depende del orden temporal de accesos solapados.
- Fuga de memoriaMemoria que ya no se necesita y que, sin embargo, sigue reservada durante el uso.
- ConcurrenciaOrganizar varias tareas para que sus periodos de procesamiento puedan solaparse.
Su proyecto con ASES
Descríbanos su proyecto. Le responderemos con una primera valoración.