Elementi interni delle raccolte Reliable Collections e di Reliable State Manager in Azure Service FabricAzure Service Fabric Reliable State Manager and Reliable Collection internals

Questo articolo tratta in modo approfondito Reliable State Manager e le raccolte Reliable Collections per spiegare il funzionamento in background dei componenti di base.This document delves inside Reliable State Manager and Reliable Collections to see how core components work behind the scenes.

Nota

Il documento è in continua evoluzioneThis document is work in-progress. ed è possibile aggiungere commenti all'articolo per indicare gli argomenti per cui si richiedono maggiori informazioni.Add comments to this article to tell us what topic you would like to learn more about.

Modello di persistenza locale: log e checkpointLocal persistence model: log and checkpoint

Reliable State Manager e le raccolte Reliable Collections seguono un modello di persistenza basato su log e checkpoint.The Reliable State Manager and Reliable Collections follow a persistence model that is called Log and Checkpoint. In questo modello ogni cambiamento di stato viene registrato per prima cosa sul disco e quindi applicato in memoria.In this model, each state change is logged on disk first and then applied in memory. Lo stesso stato completo viene reso persistente solo occasionalmente (noto anche comeThe complete state itself is persisted only occasionally (a.k.a. Checkpoint).Checkpoint). Il vantaggio è che per migliorare le prestazioni, le differenze vengono trasformate in operazioni di scrittura sequenziali di solo accodamento sul disco.The benefit is that deltas are turned into sequential append-only writes on disk for improved performance.

Per comprendere meglio il modello basato su log e checkpoint, considerare prima di tutto lo scenario con disco infinito.To better understand the Log and Checkpoint model, let’s first look at the infinite disk scenario. Reliable State Manager registra ogni operazione prima che venga replicata.The Reliable State Manager logs every operation before it is replicated. La registrazione consente alla raccolta Reliable Collections di applicare l'operazione solo in memoria.Logging allows the Reliable Collections to apply the operation only in memory. Dal momento che i log sono persistenti, anche se la replica ha esito negativo e deve essere riavviata, Reliable State Manager dispone di informazioni sufficienti per riprodurre tutte le operazioni perse dalla replica.Since logs are persisted, even when the replica fails and needs to be restarted, the Reliable State Manager has enough information in its log to replay all the operations the replica has lost. Poiché il disco è infinito, non è mai necessario rimuovere i record del log e Reliable Collections deve gestire solo lo stato in memoria.As the disk is infinite, log records never need to be removed and the Reliable Collection needs to manage only the in-memory state.

Si prenda ora in considerazione lo scenario con disco finito.Now let’s look at the finite disk scenario. Mano a mano che si accumulano i record di log, Reliable State Manager non avrà più spazio su disco a disposizione.As log records accumulate, the Reliable State Manager will run out of disk space. Prima che questo accada, Reliable State Manager deve troncare il proprio log per fare spazio ai record più recenti.Before that happens, the Reliable State Manager needs to truncate its log to make room for the newer records. Reliable State Manager richiede quindi alle raccolte Reliable Collections di inserire un checkpoint del proprio stato in memoria sul disco.Reliable State Manager requests the Reliable Collections to checkpoint their in-memory state to disk. A questo punto, le raccolte Reliable Collections rendono persistente il proprio stato in memoria.At this point, the Reliable Collections' would persist its in-memory state. Dopo che le raccolte Reliable Collections hanno completato i propri checkpoint, Reliable State Manager può troncare il log per liberare spazio su disco.Once the Reliable Collections complete their checkpoints, the Reliable State Manager can truncate the log to free up disk space. Quando è necessario riavviare la replica, le raccolte Reliable Collections ripristinano il proprio stato in corrispondenza del checkpoint e Reliable State Manager ripristina e riproduce tutte le modifiche apportate allo stato dall'ultimo checkpoint.When the replica needs to be restarted, Reliable Collections recover their checkpointed state, and the Reliable State Manager recovers and plays back all the state changes that occurred since the last checkpoint.

L'aggiunta di un altro valore di checkpoint migliora i tempi di ripristino negli scenari comuni.Another value add of checkpointing is that it improves recovery times in common scenarios. Il log contiene tutte le operazioni che si sono verificate dall'ultimo checkpoint.Log contains all operations that have happened since the last checkpoint. Pertanto, può includere più versioni di un elemento come più valori per una determinata riga in Reliable Dictionary.So it may include multiple versions of an item like multiple values for a given row in Reliable Dictionary. Al contrario, una raccolta Reliable Collection inserisce un checkpoint solo della versione più recente di ogni valore per una chiave.In contrast, a Reliable Collection checkpoints only the latest version of each value for a key.

Passaggi successiviNext steps