Glosario de Automatización • Búfer de almacenar y reenviar

¿Qué es un búfer de almacenar y reenviar de un colector?

Ingeniería Merobix • • 9 min de lectura

Un colector de historiador se ubica cerca de la fuente de datos y envía los valores adelante al archivo central, pero ese archivo no siempre es alcanzable. Cuando el enlace cae o el archivo está caído, el colector no puede simplemente tirar los valores que sigue reuniendo, así que los retiene en un búfer local hasta que puede ponerse al día. Este búfer de almacenar y reenviar es la red de seguridad del lado del colector que evita que una caída se vuelva un hueco permanente en la historia. Esta página explica qué es el búfer, cómo dimensionarlo para las caídas que espera, el compromiso entre memoria y disco, y qué pasa cuando el búfer se llena y empieza a sobrescribir los datos más viejos.

Volver al glosario

Búfer de almacenar y reenviar en una línea: Un búfer de almacenar y reenviar de un colector es el caché local de memoria o disco dentro de un colector de historiador que guarda los valores reunidos cuando el archivo central es inalcanzable, y luego los reenvía una vez que la conexión regresa. Se dimensiona para la caída más larga que espera, a la tasa de recolección del tag, para que no se pierda dato. Puede usar memoria por velocidad o disco por durabilidad. Cuando el búfer se llena, típicamente sobrescribe los datos más viejos, así que subdimensionarlo causa pérdida silenciosa.

Qué hace el búfer durante una caída

El trabajo normal de un colector es reunir valores de una fuente de datos y enviarlos al archivo central conforme avanza. El búfer de almacenar y reenviar es lo que el colector usa cuando ese envío no puede ocurrir, ya sea porque el enlace de red al archivo falló, el servidor de archivo está caído o reiniciándose, o el archivo está temporalmente demasiado ocupado para aceptar escrituras. En vez de descartar los valores que sigue reuniendo durante esa ventana, el colector los escribe en su búfer local, preservándolos en orden con sus marcas de tiempo originales. El búfer es, en efecto, un área de retención que desacopla el acto de reunir datos del acto de entregarlos con éxito.

Cuando la conexión al archivo se restaura, el colector drena el búfer reenviando los valores retenidos al archivo, así que la historia que de otro modo habría sido un hueco se llena después del hecho. Desde el punto de vista del archivo, los datos llegan tarde pero completos, cargando las marcas de tiempo de cuando de verdad se reunieron y no de cuando por fin se reenviaron. Este es todo el valor del almacenar y reenviar en el colector: una caída de comunicación se vuelve una demora en la entrega en vez de una pérdida permanente de datos, siempre que el búfer haya retenido todo hasta que el enlace regresó.

Es importante ubicar este búfer con precisión, porque almacenar y reenviar es una idea general que aparece en varios puntos de un sistema de telemetría. Aquí la preocupación es específicamente el búfer dentro del colector de historiador, entre la fuente de datos y el archivo central. Su capacidad, su medio de almacenamiento y su comportamiento cuando se llena son propiedades de la configuración del colector, y determinan directamente si una longitud dada de caída de archivo resulta en recuperación completa o en datos perdidos. Ese búfer del lado del colector, y la matemática de capacidad que lo gobierna, es de lo que trata esta página.

Dimensionar el búfer y elegir memoria frente a disco

Dimensionar el búfer es fundamentalmente un cálculo de capacidad: cuántos datos acumulará el colector durante la caída más larga que debe sobrevivir sin pérdida. Eso depende de cuántos tags maneja el colector, qué tan rápido se recolecta cada uno, y cuánto dura una caída realista de peor caso. Un colector que reúne muchos tags rápidos acumula datos con prontitud, así que necesita un búfer más grande para cubrir la misma duración de caída que un colector que maneja unos pocos tags lentos. La manera honesta de dimensionar el búfer es decidir la longitud de caída que debe tolerar, estimar la tasa de datos que el colector produce, y proveer suficiente capacidad de búfer para retener su producto con margen, en vez de aceptar el valor por defecto con el que el colector se despacha.

La elección entre almacenar en memoria y en disco es un compromiso entre velocidad y durabilidad. Un búfer de memoria es rápido y simple, pero es volátil: si el proceso del colector se reinicia o la máquina pierde energía durante la caída, lo que sea que el búfer de memoria retuviera se pierde, lo que derrota el propósito justo en el peor momento. Un búfer de disco sobrevive un reinicio o un corte de energía, así que los datos retenidos siguen ahí cuando el colector regresa, a costa de algo de sobrecarga y dependencia de que el almacenamiento local esté sano. Para cualquier cosa que no sean las caídas más cortas y benignas, un búfer respaldado en disco es la elección más segura justamente porque las caídas y los reinicios a menudo coinciden.

En la práctica el dimensionamiento y el medio interactúan, porque un búfer de disco por lo general se puede hacer mucho más grande que uno de memoria, que es lo que le permite a un colector sortear una caída larga. Un sitio remoto que podría perder su enlace a un archivo central por horas necesita un búfer lo bastante grande y durable para retener cada valor reunido a través de toda esa ventana, lo que casi siempre significa un búfer de disco generosamente dimensionado. Decidir estos parámetros con deliberación, a partir del perfil de caída esperado del sitio específico, es lo que convierte el almacenar y reenviar de una característica nominal en una garantía genuina de que una caída no le costará datos.

Qué pasa cuando el búfer se llena, en un contexto SCADA

Un búfer tiene un tamaño finito, y cuando una caída dura más de lo que el búfer puede retener, algo tiene que ceder. El comportamiento común es que el búfer sobrescribe sus datos más viejos para hacer espacio a los valores nuevos reunidos, así que el colector sigue capturando el presente a costa de perder el principio de la ventana de caída. La consecuencia práctica es un hueco permanente al inicio de la caída: cuando el enlace regresa y el búfer drena, los datos más tempranos ya se descartaron y no se pueden recuperar. Un búfer subdimensionado por lo tanto no falla ruidosamente; pierde en silencio la parte más vieja de la caída, que es justo el tipo de pérdida silenciosa que erosiona la confianza en un historiador.

Como la falla es silenciosa, monitorear el nivel de llenado del búfer es tan importante como dimensionarlo. Un colector que reporta qué tan lleno está su búfer, y advierte conforme se acerca a la capacidad, le da a los operadores la oportunidad de intervenir, extender el búfer o priorizar restaurar el enlace al archivo antes de que los datos empiecen a sobrescribirse. Tratar un búfer casi lleno como una advertencia accionable en vez de un detalle interno es lo que evita que una caída larga se vuelva un agujero invisible en la historia. Sin esa visibilidad, la primera señal de problema es descubrir, después del hecho, que los datos de la mitad de una caída simplemente no están.

Esto importa más para los sitios SCADA remotos, donde el colector puede ubicarse en una localización de campo cuyo enlace al archivo central es justo la conexión más propensa a fallar, y donde nadie está en sitio para notarlo. Un colector bien provisto de búfer es lo que le deja a un sitio así perder comunicaciones por un periodo extendido y aun así entregar su historia completa una vez que el enlace se recupera, lo cual es central para confiar en los datos de localizaciones no atendidas. Una plataforma como Merobix empareja un búfer generosamente dimensionado y durable con visibilidad de la salud del búfer a través de los sitios, para que a la vez la garantía, retener datos durante una caída, y la advertencia, marcar cuando un búfer está cerca de sobrescribir, estén en su lugar. Esa combinación convierte el almacenar y reenviar de un mecanismo esperanzado en uno confiable para una flota distribuida.

Preguntas frecuentes

¿Cómo se dimensiona un búfer de almacenar y reenviar de un colector?

Trabaje a partir de la caída más larga que el colector debe sobrevivir sin pérdida y de la tasa de datos que produce. Multiplique el número de tags y sus tasas de recolección para estimar cuántos datos se acumulan por unidad de tiempo, luego provea suficiente capacidad de búfer para retener esa tasa a través de la duración completa de la caída, con margen. Un colector que maneja muchos tags rápidos necesita un búfer más grande que uno que maneja unos pocos tags lentos para cubrir la misma longitud de caída.

¿El búfer debería usar memoria o disco?

Para cualquier cosa que no sean las caídas más cortas y benignas, un búfer respaldado en disco es más seguro. Un búfer de memoria es rápido pero volátil, así que si el proceso del colector se reinicia o la máquina pierde energía durante la caída, los datos retenidos se pierden en el peor momento. Un búfer de disco sobrevive un reinicio o un corte de energía y por lo general se puede hacer mucho más grande, que es lo que le deja a un colector sortear una caída larga sin perder datos.

¿Qué pasa cuando un búfer de colector se llena?

Cuando una caída dura más de lo que el búfer puede retener, el búfer típicamente sobrescribe sus datos más viejos para hacer espacio a valores nuevos, creando un hueco permanente al inicio de la ventana de caída. Esta pérdida es silenciosa, así que monitorear el nivel de llenado del búfer y advertir conforme se acerca a la capacidad es esencial, dando a los operadores la oportunidad de extender el búfer o restaurar el enlace al archivo antes de que los datos se sobrescriban.

Más en Fundamentos de SCADA
Almacenar y reenviar  •  Orden de recuperación de almacenar y reenviar  •  Búfer de jitter  •  Todo en Fundamentos de SCADA →
Capacitación SCADA gratuita para operadores
Merobix University - 70 lecciones en video y 261 preguntas de examen, del primer inicio de sesión a los reportes de cumplimiento (contenido en inglés). Sin llamada de ventas.
Comenzar gratis →