Che cos'è una replica multi-master?
La replica multi-master è una tecnica utilizzata dal software di gestione del database in modo che più copie di un singolo database archiviate su computer diversi possano essere utilizzate e aggiornate da molti utenti in modo decentralizzato. Quando viene apportata una modifica a un database che utilizza la replica multi-master, la modifica apportata viene trasmessa a tutti gli altri computer della rete in modo che tutte le copie del database utilizzate vengano aggiornate. Alcuni vantaggi di una configurazione di replica multi-master includono backup di dati ridondanti e un'architettura decentralizzata in cui è possibile mantenere gli aggiornamenti alle copie di un database anche se uno dei computer della rete smette di funzionare. Senza un singolo sistema master assegnato, come nel caso dell'architettura master-slave, le modifiche e i comandi amministrativi per il controllo del database possono essere emessi da qualsiasi terminale multi-master all'interno della rete invece di fare affidamento su un solo terminale fisico. La più grande complicazione che può verificarsi con l'uso di un sistema di replica multi-master comporta l'aggiornamento di tutti i sistemi abbastanza velocemente in modo che i dati rimangano sempre sincronizzati attraverso la rete.
Il termine "multi-master" deriva dal metodo più base di replica master-slave, in cui un singolo terminale è designato come master. In una situazione master-slave, solo un singolo master è in grado di aggiornare le informazioni sulle unità slave. Un sistema di replica multi-master ha più sistemi designati come master e ogni master potrebbe essere responsabile solo per se stesso o potrebbe essere responsabile di un numero di computer noto come gruppo di replica. Con più master, qualsiasi sistema master può avviare una modifica a tutti gli altri sistemi master, portando potenzialmente a interazioni di rete molto complesse in sistemi molto grandi.
Esistono due forme di replica multi-master, la prima è la replica sincrona. La replica sincrona funziona aggiornando in tempo reale tutte le copie di un database ogni volta che viene apportata una modifica. Questo rimuove la maggior parte delle situazioni che possono verificarsi quando i dati non sono sincronizzati attraverso la rete, ma crea un'enorme quantità di traffico di rete e potrebbe richiedere una grande quantità di potenza di elaborazione per implementare in un sistema più grande. Per questi motivi, la replica sincrona viene utilizzata principalmente nelle reti in cui sono presenti solo pochi computer master.
Il secondo tipo di replica multi-master è la replica asincrona. Invece di aggiornare i sistemi ogni volta che viene apportata una modifica, le modifiche a un database vengono archiviate come eventi su ciascun sistema e tali modifiche vengono applicate quando viene attivato un evento o durante i periodi di aggiornamento pianificati. Ciò significa che viene utilizzata meno larghezza di banda di rete e potenza di elaborazione, ma aumenta le possibilità che due utenti a un certo punto possano tentare di modificare le stesse informazioni in modi contrastanti a causa del ritardo nell'aggiornamento o della latenza. La maggior parte dei sistemi di gestione di database distribuiti utilizza la replica asincrona a causa della ridotta quantità di risorse consumate rispetto alla replica multi-master sincrona.