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:
| Almacenamiento | Resiste una interrupción de la conexión con el destino | Resiste un reinicio del Gateway |
|---|---|---|
| Lote en memoria pendiente de envío | Durante poco tiempo | No |
| Base de datos de historial local | Sí; permite consultar los datos en la instalación | Sí |
| Cola de reintentos persistente en disco | Sí; además se envía cuando vuelve la conexión | Sí |
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.
| Magnitud | Cálculo | Resultado |
|---|---|---|
| Ritmo de entrada | 1.200 ÷ 60 | 20 registros por segundo |
| Duración de la interrupción | 12 × 3.600 | 43.200 segundos |
| Registros que deben conservarse | 20 × 43.200 | 864.000 registros |
| Almacenamiento | 864.000 × 200 bytes | 172,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.
| Magnitud | Cálculo | Resultado |
|---|---|---|
| Ritmo de carga admitido por el destino | Medido | 80 registros por segundo |
| Lecturas nuevas | Según el cálculo anterior | 20 registros por segundo |
| Ritmo neto de vaciado | 80 − 20 | 60 registros por segundo |
| Tiempo para vaciar la cola | 864.000 ÷ 60 | 14.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ítica | Resultado | Adecuada para |
|---|---|---|
| Descartar los más antiguos | Se conservan los datos recientes; se pierde el inicio de la interrupción | Operaciones en tiempo real |
| Descartar los más nuevos | Se conserva el registro inicial completo; se pierde el tramo final | Facturación y auditoría, con una alarma |
| Dejar de recoger datos | Nada se sobrescribe; se pierden los datos nuevos | Pocas 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
- Desconecte el enlace con el destino durante la interrupción prevista, o realice una prueba a escala con un número conocido de registros.
- Observe cómo crece la cola y compruebe las alarmas.
- Restablezca la conexión y mida el tiempo de vaciado.
- Cuente en el destino los registros del periodo de interrupción y compruebe si hay huecos, duplicados o marcas temporales erróneas.
- 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.