Sobes.tech
Junior

Cos'è la replica nel contesto di database e applicazioni?

sobes.tech AI

Risposta dell'AI

La replicazione è il processo di creazione e mantenimento di più copie dei dati di un database o dello stato di un'applicazione su server diversi.

Obiettivi della replicazione:

  • Aumento della disponibilità (Alta Disponibilità): Quando un server si guasta, altre repliche possono continuare a gestire le richieste.
  • Miglioramento della scalabilità: Le richieste di lettura possono essere distribuite tra le repliche, riducendo il carico sul server principale.
  • Distribuzione geografica (Recupero da disastri): Le repliche possono trovarsi in diversi data center per proteggersi da guasti locali.
  • Riduzione della latenza: Gli utenti possono leggere i dati dalla replica più vicina.

Tipi di replicazione:

  • Sincrona: Le modifiche vengono scritte su tutte le repliche prima che la transazione venga confermata al cliente. Garantisce una forte coerenza, ma può aumentare la latenza di scrittura.
  • Asincrona: La transazione viene confermata al cliente dopo essere stata scritta sul server principale. Le repliche vengono aggiornate successivamente. Offre migliori prestazioni di scrittura, ma può esserci disallineamento temporaneo dei dati.

Modalità di replicazione:

  • Master-Replika (o Master-Slave): Una replica (master) accetta tutte le operazioni di scrittura, mentre le altre (replike) leggono solo, ricevendo le modifiche dal master.
  • Multi-Master: Più repliche possono accettare operazioni di scrittura. Richiede un meccanismo di risoluzione dei conflitti.

Nel contesto delle applicazioni, la replicazione può riferirsi alla creazione di più istanze dell'applicazione (servizi) con gli stessi obiettivi: aumentare disponibilità e scalabilità. Ad esempio, avviare più pod in Kubernetes, ognuno dei quali è una replica dello stesso servizio.