Un numero epoch è il numero totale delle operazioni create in una particolare replica.
Nella Figura 2 daMemorizzazione delle operazioni per ogni replica, il numero epoch per boston_hub è
950.
Lo schema di sincronizzazione di
MultiSite tenta di ridurre la quantità di dati trasmessi tra le repliche.
Ogni replica memorizza questi numeri epoch:
- Modifiche apportate alla replica corrente. Il numero delle operazioni create nella replica corrente.
- Modifiche apportate alle repliche di pari livello importate nella replica corrente. Quando syncreplica scrive un'operazione da un pacchetto di aggiornamento alla replica corrente, incrementa il numero epoch che registra il numero di operazioni create sulla replica di pari livello importata sulla replica corrente.
- Stime degli stati delle altre repliche. Per ogni altra
replica, viene modificata una stima delle proprie modifiche e delle altre repliche. La replica corrente memorizza le operazioni inviate alle altre repliche e suppone l'importazione corretta di queste operazioni.
La
Tabella 1 mostra come questi numeri epoch
si verificano in una matrice del numero epoch. Ogni replica conserva la propria matrice,
modificando le righe appena il lavoro si verifica localmente e scambia i pacchetti di aggiornamento con le altre repliche:
- Quando il lavoro si verifica nella replica boston_hub, il numero di epoch è incrementato.
- Quando la replica boston_hub riceve un aggiornamento da sanfran_hub, modifica la propria riga ( boston_hub) e la riga sanfran_hub nella matrice del numero epoch.
- Quando la replica boston_hub genera un pacchetto di aggiornamento inviato a
sanfran_hub, modifica la riga sanfran_hub nella matrice del numero epoch.
Un comando syncreplica –export aggiorna i numeri epoch. Non attende il riscontro dalla replica di importazione riguardo alla ricezione e all'applicazione corrette del pacchetto. Durante la normale elaborazione di MultiSite, nessun intervento manuale viene richiesto per gestire la precisione delle matrici del numero epoch per le varie repliche. Tuttavia, un errore per applicare un pacchetto potrebbe richiedere un intervento manuale.
Tabella 1. Matrice del numero epoch di due righe sulla replica boston_hub |
Operazioni create in boston_hub |
Operazioni create in sanfran_hub |
Record di boston_hub del proprio stato |
950 |
504 |
stima di boston_hub dello stato di sanfran_hub |
912 |
504 |
Il contenuto di questa matrice è riportato dal comando
lsepoch sulla replica
boston_hub:
multiutil lsepoch -clan telecomm -site boston_hub -family PRODA -user bostonadmin -password secret
Multiutil: Estimates of the epochs from each site replayed at site ’boston_hub’ (@minuteman):
boston_hub: 950
sanfran_hub: 504
Multiutil: Estimates of the epochs from each site replayed at site ’sanfran_hub’ (@goldengate):
boston_hub: 912
sanfran_hub: 504
Un comando
syncreplica –export immesso in
boston_hub utilizza questa matrice nel modo seguente per creare un aggiornamento destinato per
sanfran_hub - Sulla replica boston_hub, il numero delle operazioni locali è 950 (numero nell'angolo in alto a sinistra della matrice) e la stima è che la replica sanfran_hub ha importato tutte le operazioni mediante l'ID oplog 912 (numero nell'angolo in basso a sinistra).
- Il pacchetto di aggiornamento che la replica boston_hub invia alla replica
sanfran_hub include le voci oplog 913-950 di boston_hub. Una volta che l'amministratore di Boston richiama syncreplica –export, la riga sanfran_hub viene aggiornata:
multiutil lsepoch -clan telecomm -site boston_hub -family PRODA -user lexadmin -password secret
Multiutil: Estimates of the epochs from each site replayed at site ’boston_hub’ (@minuteman):
boston_hub: 950
sanfran_hub: 504
Multiutil: Estimates of the epochs from each site replayed at site ’sanfran_hub’ (@goldengate):
boston_hub: 950
sanfran_hub: 504