Replica

Questa pagina descrive come i dati vengono replicati in Spanner, le diverse tipi di repliche Spanner e relativi ruoli nelle letture e scritture, e i vantaggi della replica.

Panoramica

Spanner replica automaticamente a livello di byte. Come descritto in La vita delle letture e delle scritture Spanner, sfrutta questa nel file system sottostante su cui si basa. Spanner scrive le mutazioni del database nei file di questo file system, e il file system si occupa di replicare e recuperare i file quando della macchina o del disco si guasta.

Anche se il file system distribuito sottostante che Spanner è basato già su fornisce una replica a livello di byte, consente di replicare i dati per offrire i vantaggi aggiuntivi della disponibilità dei dati località geografica. A livello generale, tutti i dati in Spanner organizzate in righe. Spanner crea più copie oppure "repliche" di queste righe, le repliche vengono quindi archiviate in regioni diverse in queste aree. Spanner usa uno schema di replica sincrono basato su Paxos, in cui le repliche di voto votano per ogni richiesta di scrittura prima del commit della scrittura. è la proprietà della replica sincrona globale consente di leggere i dati più aggiornati da qualsiasi Replica Spanner di lettura e scrittura o di sola lettura.

Spanner crea repliche di ogni suddiviso di database. Una divisione contiene un intervallo di righe contigue, in cui le righe sono ordinate per chiave primaria. Tutti i dati di una suddivisione sono fisicamente archiviati insieme nella replica e Spanner gestisce ogni replica da un errore indipendente zona di destinazione. Per saperne di più, consulta Informazioni sugli schemi.

Un insieme di suddivisioni viene archiviato e replicato utilizzando Paxos. All'interno di ogni Paxos di replica, viene scelta una replica come leader. Repliche leader sono responsabili della gestione delle scritture, mentre qualsiasi replica di lettura/scrittura o di sola lettura può soddisfare una richiesta di lettura senza comunicare con la responsabile (anche se se di lettura, in genere viene consultato il leader per assicurarsi che la replica di sola lettura ha ricevuto tutte le mutazioni recenti).

Vantaggi della replica di Spanner

I vantaggi della replica di Spanner includono:

  • Disponibilità dei dati: avere più copie dei tuoi dati ne aumenta il numero disponibili per i clienti che vogliono leggerla. Inoltre, Spanner può gestire comunque le scritture anche se alcune repliche non sono disponibili, è necessaria solo la maggioranza delle repliche di voto per eseguire una scrittura.

  • Località geografica: capacità di posizionare i dati tra diverse le regioni e i continenti con Spanner significa che i dati geograficamente più vicini, e quindi più rapidi ad accedere, agli utenti e ai servizi che ne hanno bisogno.

  • Esperienza con un singolo database: Spanner può fornire una con un singolo database grazie alla replica sincrona elevata coerenza globale.

  • Sviluppo delle applicazioni semplificato. Poiché Spanner è è conforme ad ACID e offre un'elevata coerenza globale, gli sviluppatori lavorano con Spanner non devono aggiungere ulteriore logica applicazioni per gestire la coerenza finale, rendendo lo sviluppo e la successiva manutenzione in modo più rapido e semplice.

Tipi di replica

Spanner ha tre tipi di repliche: repliche di lettura/scrittura, repliche di sola lettura e repliche di testimoni. Le regioni e la replica topologie che formano le configurazioni delle istanze di base sono corretti. Configurazioni di istanza regionale di base utilizzare solo repliche di lettura/scrittura. Configurazioni di base delle istanze a due regioni utilizzare repliche di lettura e scrittura e di testimonianza, configurazioni di istanze multiregionali di base userà una combinazione di tutti e tre i tipi di replica. Puoi creare impostazioni personalizzate configurazioni di istanza e aggiungere ulteriori repliche di sola lettura configurazioni di istanze regionali e multiregionali.

La tabella seguente riassume i tipi di repliche di Spanner e le loro proprietà:

Tipo di replica Può votare Può diventare leader Può pubblicare letture Può configurare la replica manualmente
Lettura/scrittura no
Sola lettura no no *
Testimone no no no

* Per ulteriori informazioni, vedi come creare un'istanza con un configurazione dell'istanza.

Repliche di lettura/scrittura

Le repliche di lettura e scrittura supportano sia le letture sia le scritture. Queste repliche:

  • Conserva una copia completa dei tuoi dati.
  • Elabora le letture.
  • Può votare se eseguire una scrittura.
  • Partecipare alle elezioni della leadership.
  • Sono idonei a diventare leader.
  • Sono l'unico tipo utilizzato nelle istanze a regione singola.

Repliche di sola lettura

Le repliche di sola lettura supportano solo le letture, non le scritture. Queste repliche di votare per i leader o per gli scritture, che ti consentono di adattare senza aumentare il quorum necessario per le scritture. Sola lettura di repliche:

  • Conservare una copia completa dei tuoi dati, che viene replicata dalle operazioni di lettura e scrittura replicas.
  • Elabora le letture.
  • Non partecipare alle votazioni per impegnare le scritture. Pertanto, la posizione le repliche di sola lettura non contribuiscono alla latenza di scrittura.
  • Se è la replica più vicina alla tua applicazione, la replica di sola lettura di solito pubblica letture inattive senza il bisogno di andata e ritorno per il valore predefinito regione leader, supponendo che l'inattività sia di almeno 15 secondi. Puoi anche utilizzare letture dirette per instradare le transazioni di sola lettura e le singole letture a un una regione o un tipo di replica specifico in una configurazione di istanze multiregionali. Per ulteriori informazioni, consulta la sezione Letture dirette.

    Letture efficaci potrebbero richiedere un viaggio di andata e ritorno alla replica leader. Andata e ritorno serve solo per negoziare il timestamp, non per spedire i dati effettivi leader. La negoziazione del timestamp è un'operazione efficiente dalla CPU presso il leader, e in genere i dati sono già in viaggio. Questa comunicazione viene gestita automaticamente dal sistema.

    Per ulteriori informazioni su letture inattive ed efficaci, consulta Nella sezione Letture.

  • Non sono idonei a diventare leader.

Puoi creare una configurazione di istanza personalizzata per una o più regioni e aggiungi repliche di sola lettura facoltative per scalare le letture e supportare una bassa latenza di dati legge. Puoi aggiungere località elencate in Regione facoltativa come replica di sola lettura facoltativa. Se non visualizzi il modello di sola lettura scelto località di replica, puoi richiedere una nuova regione di replica di sola lettura facoltativa. Nota non è possibile modificare la topologia di replica dell'istanza di base configurazioni, che sono fisse.

Tutte le repliche facoltative di sola lettura sono soggette a capacità di calcolo e spazio di archiviazione aggiuntivi. Inoltre, l'aggiunta di repliche di sola lettura la configurazione dell'istanza non modifica gli SLA di Spanner della configurazione dell'istanza. Se scegli di aggiungere una replica di sola lettura che si trova in un continente diverso da quello della regione leader, consigliamo aggiungendo almeno due repliche di sola lettura. Ciò aiuta a mantenere una bassa latenza di lettura nel caso in cui una delle repliche di sola lettura non sia più disponibile.

Quando aggiungi delle repliche di sola lettura, la replica leader ha un'esperienza maggiore carico di replica, che potrebbe influire sulle prestazioni. Come best practice, testa e carichi di lavoro prestabiliti nelle istanze non di produzione nell'istanza personalizzata configurazione. Puoi fare riferimento a Latenza e velocità effettiva tra regioni dashboard di benchmark per la mediana i dati di latenza tra regioni. Ad esempio, se crei un'istanza personalizzata con la configurazione di base multiregionale eur6 e un'istanza facoltativa replica di sola lettura in us-east1, la elevata latenza di lettura prevista per un in us-east1 è di circa 100 millisecondi a causa del tempo di round trip regione leader in europe-west4. Le letture inattive con un livello di inattività sufficiente non vengono incorrere in un viaggio di andata e ritorno e sono quindi molto più veloci. Puoi anche utilizzare lo strumento Latenza per tipo di transazione visualizza i dati di latenza per le transazioni di tipo lettura/scrittura e sola lettura.

Per le istruzioni, vedi Creare una configurazione dell'istanza personalizzata.

Repliche testimoni

Le repliche dei testimoni non supportano le letture, ma partecipano alle votazioni per impegnarsi scrive. Queste repliche consentono di raggiungere più facilmente i quorum per le scritture senza e risorse di computing necessarie dalle repliche di lettura e scrittura per archiviare una copia completa dei dati e gestire le letture. Repliche replica:

  • Vengono utilizzate solo in istanze multiregionali.
  • Non conservare una copia completa dei dati.
  • Non pubblicare letture.
  • Vota se eseguire il commit delle scritture.
  • Partecipare alle elezioni leader, ma non avere l'idoneità a diventare leader.

Il ruolo delle repliche nelle scritture e nelle letture

Questa sezione descrive il ruolo delle repliche nelle scritture e il che è utile per capire perché Spanner utilizza replica di replica in configurazioni multiregionali.

In scrittura

Le richieste di scrittura del client vengono sempre elaborate per prime nella replica leader, anche se c'è una replica non leader più vicina al cliente, o se il leader geograficamente distante dal client. Se utilizzi più regioni dell'istanza e la tua applicazione client si trova in una posizione in una regione specifica, Spanner usa il routing leader-aware per instradare le operazioni di lettura e scrittura transazioni in modo dinamico per ridurre la latenza nel database. Per ulteriori informazioni informazioni, vedi Routing sensibile al lead.

La replica leader registra la scrittura in entrata e la inoltra, in parallelo, al altre repliche idonee al voto scritto. Ogni replica idonea completa la scrittura, quindi risponde al leader con un voto per decidere se occorre eseguire il commit della scrittura. L'operazione di scrittura viene eseguita quando la maggioranza dei votanti repliche (o "write quorum") accettano di eseguire il commit della scrittura. In background, le repliche rimanenti (non testimoni) registrano la scrittura. Se un sistema operativo è di sola lettura/scrittura la replica rimane indietro nelle scritture di logging, può richiedere i dati mancanti un'altra replica per avere una copia completa e aggiornata dei dati.

Nelle letture

Le richieste di lettura del client potrebbero essere eseguite o richiedere di comunicare con il replica leader, a seconda della modalità di contemporaneità della richiesta di lettura.

  • Le letture che fanno parte di una transazione di lettura/scrittura vengono gestite dalla replica leader, perché mantiene i blocchi necessari per in modo forzato la serializzabilità.

  • Metodi di lettura singoli (una lettura al di fuori del contesto di una transazione) e lettura nelle transazioni di sola lettura potrebbe richiedere di comunicare con il leader, a seconda della modalità di contemporaneità della lettura. (Scopri di più su questi modalità di contemporaneità in Tipi di lettura.)

    • Le richieste di lettura efficaci possono andare a qualsiasi replica di lettura/scrittura o di sola lettura. Se va a una replica non leader, quest'ultima deve comunicare leader per eseguire la lettura.

    • Le richieste di lettura inattive vanno alle richieste di sola lettura o lettura/scrittura più vicine disponibili replica aggiornata con il timestamp della richiesta. Può essere replica leader se quest'ultima è la replica più vicina al cliente ha emesso la richiesta di lettura.