Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Principi fondamentali per più regioni 2: comprensione dei dati
La gestione dei dati è un problema non banale con le architetture multiregionali. La distanza geografica tra le regioni impone una latenza inevitabile, che si manifesta con il tempo necessario per replicare i dati tra le regioni. Saranno necessari compromessi tra disponibilità, coerenza dei dati e introduzione di ordini di grandezza di latenza più elevati in un carico di lavoro che utilizza un'architettura multiregionale. Che si utilizzi la replica asincrona o sincrona, sarà necessario modificare l'applicazione per gestire i cambiamenti comportamentali imposti dalla tecnologia di replica. È molto difficile prendere un'applicazione esistente progettata per una singola regione e renderla multiregionale a causa delle sfide legate alla coerenza e alla latenza dei dati. Comprendere i requisiti di coerenza dei dati e i modelli di accesso ai dati per carichi di lavoro particolari è fondamentale per valutare i compromessi.
2a: Comprendere i requisiti di coerenza dei dati
Il teorema CAP fornisce un riferimento per ragionare sui compromessi tra coerenza dei dati, disponibilità e partizioni di rete, di cui solo due possono essere soddisfatte contemporaneamente per un carico di lavoro. La multiregione per definizione include le partizioni di rete tra regioni, quindi è necessario scegliere tra disponibilità e coerenza.
Se si seleziona la disponibilità dei dati tra le regioni, non si verificherà una latenza significativa durante le scritture transazionali, poiché si fa affidamento sulla replica asincrona dei dati impegnati tra le regioni, con conseguente riduzione della coerenza tra le regioni fino al completamento della replica. Con la replica asincrona, in caso di errore nella regione principale, c'è un'alta probabilità di scritture in attesa della replica dalla regione principale. Ciò porta a uno scenario in cui i dati più recenti non sono disponibili fino alla ripresa della replica ed è necessario un processo di riconciliazione per gestire le transazioni in corso che non sono state replicate dalla regione in cui si è verificata l'interruzione.
Per i carichi di lavoro in cui è preferita la replica asincrona, puoi utilizzare servizi come Amazon Aurora e
Progettare il carico di lavoro per sfruttare le architetture basate sugli eventi è un vantaggio per una strategia multiregionale, perché significa che il carico di lavoro può includere la replica asincrona dei dati e consente la ricostruzione dello stato mediante la riproduzione degli eventi. Poiché i servizi di streaming e messaggistica memorizzano nel buffer i dati del payload dei messaggi in un'unica regione, un processo di failover/failback regionale deve includere un meccanismo per reindirizzare i flussi di dati di input dei client, nonché per riconciliare i payload in volo e/o non consegnati archiviati nella regione in cui si è verificata l'interruzione.
Se si seleziona la coerenza, si verificherà una latenza significativa poiché i dati vengono replicati in modo sincrono durante le scritture transazionali. Quando si scrive in più regioni in modo sincrono, se la scrittura non riesce in tutte le regioni, la disponibilità è potenzialmente ridotta perché la transazione non verrà confermata e dovrà essere ritentata. I nuovi tentativi di scrivere i dati in tutte le regioni in modo sincrono vengono eseguiti a scapito della latenza ad ogni tentativo. A un certo punto, quando i nuovi tentativi saranno esauriti, sarà necessario decidere se annullare completamente la transazione, riducendo così la disponibilità, oppure affidarla solo alle regioni disponibili, con conseguenti incongruenze. Esistono tecnologie di formazione del quorum come Paxos
Quando le scritture prevedono la replica sincrona su più regioni per soddisfare elevati requisiti di coerenza, la latenza di scrittura aumenta di un ordine di grandezza. Una latenza di scrittura più elevata non è qualcosa che in genere può essere adattata a posteriori in un'applicazione senza modifiche significative. Idealmente, deve essere presa in considerazione quando l'applicazione viene progettata per la prima volta. Per i carichi di lavoro multiregionali in cui la replica sincrona è una priorità, le soluzioni dei AWSpartner
2b: Comprensione dei modelli di accesso ai dati
I modelli di accesso ai dati dei carichi di lavoro rientrano in uno dei seguenti tipi: intensivo in lettura o in scrittura. La comprensione di questa caratteristica per un particolare carico di lavoro guiderà la selezione di un'architettura multiregionale appropriata.
Per carichi di lavoro ad alta intensità di lettura, come i contenuti statici completamente di sola lettura, è possibile realizzare un'architettura multiregionale attiva/attiva senza complessità significative
Per carichi di lavoro ad alta intensità di lettura che hanno una percentuale maggiore di letture rispetto alle scritture, è possibile utilizzare una strategia globale di lettura locale
Aurora Global Database
Per i carichi di lavoro ad alta intensità di scrittura, è necessario selezionare una regione principale e incorporare nel carico di lavoro la capacità di failover su una regione di standby. Rispetto a un approccio attivo/attivo, un approccio primario/standby è meno complicato.
La maggior parte dei carichi di lavoro che utilizzano la resilienza multiregionale non richiederà un approccio attivo/attivo. È possibile utilizzare una strategia di sharding
L'approccio di sharding può essere combinato con un approccio primario/standby per fornire funzionalità di failover per gli shard. Sarà necessario integrare nel carico di lavoro un processo di failover testato e un processo di riconciliazione dei dati per garantire la coerenza transazionale degli archivi di dati dopo il failover. Questi sono trattati più dettagliatamente più avanti in questo paper.
Linee guida chiave
-
È molto probabile che le scritture in sospeso per la replica non vengano salvate nella regione di standby in caso di errore. I dati non saranno disponibili fino alla ripresa della replica (presupponendo la replica asincrona).
-
Come parte del failover, sarà necessario un processo di riconciliazione dei dati per garantire il mantenimento di uno stato transazionale coerente per i datastore che utilizzano la replica asincrona.
-
Quando è richiesta una forte coerenza, sarà necessario modificare i carichi di lavoro per tollerare la latenza richiesta del datastore che si replica in modo sincrono.