Protocolli e dati

Dimensionare il buffer di archiviazione e inoltro di un gateway locale

Buffer del gateway: misure al secondo, durata dell’interruzione, byte per misura, tempo di svuotamento, limiti di conservazione e comportamento a coda piena.

L’archiviazione e l’inoltro conservano le misure su un Gateway mentre il collegamento alla destinazione non è disponibile e le inviano quando torna. Un’interruzione diventa un ritardo anziché una perdita, ma solo entro la capacità dello spazio di archiviazione. Dimensiona il sistema in base al flusso di dati e all’interruzione più lunga da sostenere, poi verifica quanto tempo richiede il recupero.

Questa guida fa parte della serie sulla qualità e sulla trasmissione dei dati.

Quale archivio protegge i dati?

Un Gateway può conservare i dati in più luoghi, ciascuno con una protezione diversa:

ArchivioResiste a un’interruzione verso la destinazioneResiste al riavvio del Gateway
Lotto in memoria in attesa di invioPer poco tempoNo
Database storico localeSì; i dati restano consultabili sul sitoSì
Coda persistente su disco per i nuovi tentativiSì; i dati vengono inviati al ripristinoSì

Solo una coda persistente su disco, oppure un processo che invia i dati dalla cronologia locale, conserva le misure durante una lunga interruzione e un riavvio. Un lotto in memoria va perso se manca l’alimentazione prima dell’invio. Chiedi quale archivio usa il Gateway e quando i dati passano da uno all’altro.

Dimensionare il buffer

Considera un sito con 1 200 misure al minuto che deve superare un’interruzione di 12 ore. Ipotizza 200 byte per record archiviato; misura il valore reale sul Gateway, inclusi indici e spazio aggiuntivo.

GrandezzaCalcoloRisultato
Flusso in ingresso1 200 ÷ 6020 record al secondo
Durata dell’interruzione12 × 3 60043 200 secondi
Record da conservare20 × 43 200864 000 record
Spazio864 000 × 200 byte172,8 MB, prima dello spazio aggiuntivo

Aggiungi un margine per lo spazio aggiuntivo e per un’interruzione più lunga del previsto. Verifica che lo spazio non sia condiviso con dati che potrebbero riempirlo, come i log.

Calcolare il tempo di smaltimento

Il recupero non è istantaneo. La destinazione accetta record a un ritmo limitato, mentre continuano ad arrivare nuove misure. I dati arretrati diminuiscono al ritmo netto di smaltimento: il ritmo di caricamento meno quello delle nuove misure.

GrandezzaCalcoloRisultato
Ritmo di caricamento accettato dalla destinazioneMisurato80 record al secondo
Nuove misureDal calcolo precedente20 record al secondo
Ritmo netto di smaltimento80 − 2060 record al secondo
Tempo per smaltire i dati arretrati864 000 ÷ 6014 400 secondi, cioè 4 ore

Durante queste quattro ore, la destinazione mostra dati vecchi di ore. Dashboard e allarmi della destinazione devono usare l’ora della rilevazione di ogni misura, non quella di arrivo. La guida ai timestamp spiega perché.

Limiti di tempo oltre che di spazio

Alcuni archivi eliminano i dati dopo un certo tempo, indipendentemente dalla loro dimensione. Alcune destinazioni rifiutano dati più vecchi di una soglia, oppure li accettano senza ricalcolare totali e allarmi. Verifica entrambi gli aspetti:

  • il periodo di conservazione dell’archivio sul Gateway;
  • l’età massima delle misure accettate dalla destinazione e cosa ne fa.

Quando il buffer è pieno

Decidi in anticipo il comportamento:

StrategiaRisultatoAdatta a
Eliminare i dati più vecchiRestano i dati recenti; si perde l’inizio dell’interruzioneOperatività in tempo reale
Eliminare i dati più recentiResta la serie iniziale completa; si perde la parte finaleFatturazione e registri di audit, con allarme
Fermare la raccoltaNessun dato viene sovrascritto; si perdono le nuove misureRaramente una scelta adatta

Genera un allarme ben prima che il buffer sia pieno, per esempio al 50% e all’80%, così qualcuno può intervenire.

Duplicati durante il recupero

Un Gateway può inviare un lotto, perdere la connessione prima di registrare la conferma e inviare nuovamente lo stesso lotto dopo il ripristino. La destinazione riceve allora alcuni record due volte. Assegna a ogni record un’identità, per esempio l’identificatore del punto e l’ora della misura, affinché la destinazione ne conservi una sola copia. La guida alla QoS di MQTT spiega la consegna «almeno una volta».

Provare l’intera interruzione

  1. Scollega il collegamento verso la destinazione per la durata prevista, oppure esegui una prova ridotta con un numero noto di record.
  2. Osserva la crescita della coda e verifica gli allarmi.
  3. Ripristina il collegamento e misura il tempo di smaltimento.
  4. Alla destinazione, conta i record relativi al periodo di interruzione e cerca lacune, duplicati e timestamp errati.
  5. Ripeti la prova riavviando il Gateway durante l’interruzione.

Archiviazione e inoltro con Edge

Edge sul Gateway ZGW-20 conserva una cronologia locale di ogni misura, utilizzabile per dashboard e analisi sul sito. Quando una destinazione non è disponibile, Edge sposta i dati non consegnati in una coda su disco, controlla la destinazione ogni minuto e ritrasmette i dati al ripristino, mantenendo i timestamp originali. Un lotto ancora in memoria nel momento del guasto può andare perso; inoltre, una ritrasmissione può consegnare due volte lo stesso lotto. Applica quindi le prove sui duplicati e sulle interruzioni descritte sopra a ogni destinazione.

Domande frequenti

Che cosa significa archiviazione e inoltro?

È un metodo in cui un Gateway conserva i dati in locale mentre il collegamento alla destinazione non è disponibile e li invia quando torna. Entro i limiti dello spazio di archiviazione, un’interruzione di rete provoca un ritardo anziché una perdita.

Quanto deve essere grande il buffer di archiviazione e inoltro?

Moltiplica le misure al secondo per la durata massima dell’interruzione in secondi e per lo spazio occupato da ciascuna misura; aggiungi poi un margine. Con 1 200 misure al minuto, un’interruzione di 12 ore e 200 byte per misura, servono 864 000 record e circa 173 MB prima dei costi aggiuntivi di archiviazione.

Quanto tempo serve a svuotare il buffer dopo un’interruzione?

Dividi le misure arretrate per il ritmo netto di smaltimento, cioè il ritmo di caricamento meno quello delle nuove misure. Con 864 000 record arretrati, 80 caricati al secondo e 20 nuovi al secondo, servono quattro ore.