In una famiglia della replica, le modifiche sono memorizzate per ogni replica.
Indica il motivo per cui una voce
oplog include l'identità della replica dove viene creata l'operazione. Quindi, la cronologia di una famiglia di replica può essere visualizzata come stack diversi delle voci oplog. Ogni stack è indicato da una sequenza lineare di ID oplog per le operazioni create in tale replica.
La cronologia di
database non replicato è una sequenza lineare delle operazioni (
Figura 1).
Figura 1. Cronologia delle modifiche ad un database
La
Figura 2 mostra lo stato di due repliche in una famiglia:
- Le operazioni con ID oplog 1–950 si sono verificate nella replica boston_hub.
- Le operazioni 1–702 si sono verificate nella replica sanfran_hub.
Figura 2. Stato di una famiglia
Una replica contiene i dati precisi solo sulle proprie operazioni. Fino a quando riceve i pacchetti di aggiornamento, le informazioni sulle altre repliche sono obsolete. Ad esempio, la replica boston_hub registra 950 operazioni locali,
ma ha ricevuto i pacchetti di aggiornamento solo per 504 operazioni sanfran_hub. In maniera simile, la replica sanfran_hub registra
702 operazioni locali, ma ha ricevuto i pacchetti di aggiornamento solo per 791 operazioni di boston_hub.
La
Figura 3 illustra questo scenario,
in cui ogni replica è obsoleta rispetto alle operazioni create su altre repliche.
Figura 3. Repliche obsolete
L'immagine di una famiglia di replica come serie di stack oplog, mostrata nella
Figura 3,
rende più semplice la comprensione del processo di sincronizzazione. Ad esempio, un pacchetto di aggiornamento
inviato dalla replica
boston_hub alla replica
sanfran_hub è costituito dagli incrementi allo stack per la replica
boston_hub (operazioni 792–950). La
Figura 4 mostra i due incrementi.
Poiché
sanfran_hub rileva il proprio stato, necessita di aggiornamenti solo per le operazioni create sulle altre repliche. (In alcune situazioni per il ripristino di errori, è necessario reimpostare i dati della replica sulle proprie operazioni. )
Figura 4. Aggiornamenti tra due repliche
Nota: dal momento in cui il pacchetto viene importato in sanfran_hub, ulteriori modifiche possono essere apportate in boston_hub. Queste modifiche non sono include nel pacchetto di aggiornamento.