Protocolos y datos

Dimensionar el búfer de almacenamiento y envío diferido de un Gateway

Búfer de un Gateway: registros por segundo, duración de la interrupción, bytes por registro, tiempo de vaciado, retención y comportamiento al llenarse.

El almacenamiento y envío diferido conserva las lecturas en un Gateway mientras falla la conexión con el destino y las envía cuando se restablece. Convierte una interrupción en retraso, en vez de pérdida, pero solo hasta la capacidad del almacenamiento. Dimensione la cola según el ritmo de datos y la interrupción más larga que deba soportar; después calcule cuánto tardará la recuperación.

Esta guía forma parte de la serie sobre calidad y transmisión de datos.

¿Qué almacenamiento protege los datos?

Un Gateway puede conservar datos en varios lugares, que ofrecen protecciones distintas:

AlmacenamientoResiste una interrupción de la conexión con el destinoResiste un reinicio del Gateway
Lote en memoria pendiente de envíoDurante poco tiempoNo
Base de datos de historial localSí; permite consultar los datos en la instalaciónSí
Cola de reintentos persistente en discoSí; además se envía cuando vuelve la conexiónSí

Solo una cola persistente en disco, o un proceso que envía desde el historial local, conserva los datos durante una interrupción larga y un reinicio. Un lote en memoria se pierde si falla la alimentación antes de enviarse. Pregunte qué almacenamiento utiliza el Gateway y cuándo pasan los datos de uno a otro.

Dimensione el búfer

Considere este ejemplo: una instalación genera 1.200 lecturas por minuto y debe soportar una interrupción de 12 horas. Suponga 200 bytes por registro almacenado; mida el valor real en el Gateway, incluidos los índices y la sobrecarga.

MagnitudCálculoResultado
Ritmo de entrada1.200 ÷ 6020 registros por segundo
Duración de la interrupción12 × 3.60043.200 segundos
Registros que deben conservarse20 × 43.200864.000 registros
Almacenamiento864.000 × 200 bytes172,8 MB, antes de la sobrecarga

Añada un margen para la sobrecarga y para una interrupción más larga de lo previsto. Compruebe que el espacio no se comparte con otros datos, como registros de actividad, que puedan agotarlo.

Calcule el tiempo de vaciado

La recuperación no es instantánea. El destino admite registros a un ritmo limitado y siguen llegando lecturas nuevas. Los datos pendientes disminuyen al ritmo neto de vaciado: el ritmo de carga menos el ritmo de entrada.

MagnitudCálculoResultado
Ritmo de carga admitido por el destinoMedido80 registros por segundo
Lecturas nuevasSegún el cálculo anterior20 registros por segundo
Ritmo neto de vaciado80 − 2060 registros por segundo
Tiempo para vaciar la cola864.000 ÷ 6014.400 segundos, o 4 horas

Durante esas cuatro horas, el destino muestra datos con varias horas de antigüedad. Los paneles y las alarmas del destino deben usar la hora de medición de cada lectura, no la de llegada. La guía sobre marcas temporales explica por qué.

Límites de tiempo además de capacidad

Algunos sistemas de almacenamiento eliminan datos tras un plazo, independientemente de su tamaño. Algunos destinos rechazan datos más antiguos de cierto límite, o los aceptan sin recalcular totales y alarmas. Compruebe ambos puntos:

  • cuánto tiempo conserva los datos el almacenamiento del Gateway;
  • cuál es la lectura más antigua que admite el destino y qué hace con ella.

Cuando se llena el búfer

Decida de antemano qué debe ocurrir:

PolíticaResultadoAdecuada para
Descartar los más antiguosSe conservan los datos recientes; se pierde el inicio de la interrupciónOperaciones en tiempo real
Descartar los más nuevosSe conserva el registro inicial completo; se pierde el tramo finalFacturación y auditoría, con una alarma
Dejar de recoger datosNada se sobrescribe; se pierden los datos nuevosPocas veces es una buena opción

Genere alarmas mucho antes de llenar el búfer, por ejemplo al 50 % y al 80 %, para que alguien pueda actuar.

Duplicados durante la recuperación

Un Gateway puede enviar un lote, perder la conexión antes de registrar el acuse de recibo y volver a enviarlo tras la recuperación. El destino recibe entonces algunos registros dos veces. Asigne una identidad a cada registro, por ejemplo el identificador del punto más la hora de medición, para que el destino conserve una sola copia. La guía de QoS de MQTT explica la entrega «al menos una vez».

Pruebe la interrupción completa

  1. Desconecte el enlace con el destino durante la interrupción prevista, o realice una prueba a escala con un número conocido de registros.
  2. Observe cómo crece la cola y compruebe las alarmas.
  3. Restablezca la conexión y mida el tiempo de vaciado.
  4. Cuente en el destino los registros del periodo de interrupción y compruebe si hay huecos, duplicados o marcas temporales erróneas.
  5. Repita la prueba reiniciando el Gateway durante la interrupción.

Almacenamiento y envío diferido con Edge

Edge en el Gateway ZGW-20 conserva un historial local de cada lectura para los paneles y el análisis en la instalación. Si falla un destino, Edge pasa los datos no entregados a una cola en disco, comprueba el destino cada minuto y los reenvía cuando vuelve a estar disponible, con sus marcas temporales originales. Un lote que todavía esté en memoria al producirse el fallo puede perderse, y un reenvío puede entregar un lote dos veces. Por eso debe aplicar las pruebas de duplicados e interrupción anteriores a cada destino.

Preguntas frecuentes

¿Qué es el almacenamiento y envío diferido?

Es un método por el que un Gateway conserva datos en almacenamiento local mientras falla su conexión con el destino y los envía cuando se restablece. Convierte una interrupción de red en un retraso en vez de una pérdida, hasta la capacidad del almacenamiento.

¿Qué tamaño debe tener un búfer de almacenamiento y envío diferido?

Multiplique los registros por segundo por la duración máxima de la interrupción en segundos y por los bytes que ocupa cada registro; añada un margen. Para 1.200 lecturas por minuto, una interrupción de 12 horas y 200 bytes por registro, son 864.000 registros y unos 173 MB antes de la sobrecarga.

¿Cuánto tarda en vaciarse el búfer después de una interrupción?

Divida los registros pendientes entre el ritmo neto de vaciado: ritmo de carga menos ritmo de llegada de nuevas lecturas. Una cola de 864.000 registros que se envían a 80 por segundo mientras siguen llegando 20 por segundo tarda cuatro horas.