Compromessi tra coerenza, disponibilità e prestazioniConsistency, availability, and performance tradeoffs

I database distribuiti che si basano sulla replica per la disponibilità elevata, la bassa latenza o entrambe devono attuare dei compromessi.Distributed databases that rely on replication for high availability, low latency, or both must make tradeoffs. Tali compromessi sono tra la coerenza di lettura e la disponibilità, latenza e velocità effettiva.The tradeoffs are between read consistency vs. availability, latency, and throughput.

Azure Cosmos DB affronta la coerenza dei dati offrendo uno spettro di scelte.Azure Cosmos DB approaches data consistency as a spectrum of choices. Questo approccio include più opzioni rispetto ai due estremi della coerenza assoluta ed eventuale.This approach includes more options than the two extremes of strong and eventual consistency. È possibile scegliere tra cinque livelli ben definiti nello spettro di coerenza.You can choose from five well-defined levels on the consistency spectrum. Dal più forte al più debole, i livelli sono:From strongest to weakest, the levels are:

  • ForteStrong
  • Obsolescenza associataBounded staleness
  • sessioneSession
  • Prefisso coerenteConsistent prefix
  • EventualiEventual

Ogni livello garantisce compromessi a livello di disponibilità e prestazioni ed è supportato da contratti di contratto completi.Each level provides availability and performance tradeoffs and is backed by comprehensive SLAs.

Livelli di coerenza e latenzaConsistency levels and latency

La latenza di lettura per tutti i livelli di coerenza è sempre minore ai 10 millisecondi al 99° percentile.The read latency for all consistency levels is always guaranteed to be less than 10 milliseconds at the 99th percentile. Questa latenza di lettura è supportata dal contratto di servizio.This read latency is backed by the SLA. La latenza di lettura media, al cinquantesimo percentile, è in genere di 4 millisecondi o meno.The average read latency, at the 50th percentile, is typically 4 milliseconds or less.

La latenza di scrittura per tutti i livelli di coerenza è sempre inferiore a 10 millisecondi al 99 ° percentile.The write latency for all consistency levels is always guaranteed to be less than 10 milliseconds at the 99th percentile. Questa latenza di scrittura è supportata dal contratto di servizio.This write latency is backed by the SLA. La latenza di scrittura media, al 50° percentile, è in genere uguale o inferiore ai 5 millisecondi.The average write latency, at the 50th percentile, is usually 5 milliseconds or less. Gli account di Azure Cosmos che si estendono su più aree e sono configurati con coerenza assoluta costituiscono un'eccezione a questa garanzia.Azure Cosmos accounts that span several regions and are configured with strong consistency are an exception to this guarantee.

Latenza di scrittura e coerenza assolutaWrite latency and Strong consistency

Per gli account Azure Cosmos configurati con coerenza assoluta con più di un'area, la latenza di scrittura è pari a due volte il tempo di round trip (RTT) tra una delle due aree più lontane, più 10 millisecondi al 99 ° percentile.For Azure Cosmos accounts configured with strong consistency with more than one region, the write latency is equal to two times round-trip time (RTT) between any of the two farthest regions, plus 10 milliseconds at the 99th percentile. Un RTT di rete elevato tra le aree verrà convertito in una latenza più elevata per le richieste di Cosmos DB perché la coerenza assoluta completa un'operazione solo dopo aver verificato che sia stato eseguito il commit in tutte le aree all'interno di un account.High network RTT between the regions will translate to higher latency for Cosmos DB requests since strong consistency completes an operation only after ensuring that it has been committed to all regions within an account.

La latenza RTT esatta è una funzione della velocità della luce e la topologia di rete di Azure.The exact RTT latency is a function of speed-of-light distance and the Azure networking topology. La rete di Azure non fornisce nessun contratto di servizio di latenza per il tempo RTT tra due aree di Azure.Azure networking doesn't provide any latency SLAs for the RTT between any two Azure regions. Per l'account Azure Cosmos, le latenze di replica vengono visualizzate nel portale di Azure.For your Azure Cosmos account, replication latencies are displayed in the Azure portal. Per monitorare le latenze di replica tra le varie aree associate all'account Azure Cosmos, è possibile usare il portale di Azure (passare al pannello metriche, selezionare scheda coerenza).You can use the Azure portal (go to the Metrics blade, select Consistency tab) to monitor the replication latencies between various regions that are associated with your Azure Cosmos account.

Importante

Per impostazione predefinita, la coerenza assoluta per gli account con aree che si estendono su più di 5000 miglia (8000 km) è bloccata a causa della latenza di scrittura elevata.Strong consistency for accounts with regions spanning more than 5000 miles (8000 kilometers) is blocked by default due to high write latency. Per abilitare questa funzionalità, contattare il supporto tecnico.To enable this capability please contact support.

Livelli di coerenza e velocità effettivaConsistency levels and throughput

  • Per un decadimento forte e con decadimento ristretto, le letture vengono eseguite su due repliche in un set di quattro repliche (quorum minoritario) per fornire garanzie di coerenza.For strong and bounded staleness, reads are done against two replicas in a four replica set (minority quorum) to provide consistency guarantees. Sessione, prefisso coerente e eventuale lettura di una singola replica.Session, consistent prefix and eventual do single replica reads. Il risultato è che, per lo stesso numero di unità di richiesta, la velocità effettiva di lettura per l'obsolescenza forte e ristretta è la metà degli altri livelli di coerenza.The result is that, for the same number of request units, read throughput for strong and bounded staleness is half of the other consistency levels.

  • Per un determinato tipo di operazione di scrittura (come inserimento, sostituzione, upsert ed eliminazione), la velocità effettiva di scrittura per le unità di richieste è identica per tutti i livelli di coerenza.For a given type of write operation, such as insert, replace, upsert, and delete, the write throughput for request units is identical for all consistency levels.

Livello di coerenzaConsistency Level Letture quorumQuorum Reads Scritture quorumQuorum Writes
ForteStrong Minoranza localeLocal Minority Maggioranza globaleGlobal Majority
Decadimento ristrettoBounded Staleness Minoranza localeLocal Minority Maggioranza localeLocal Majority
sessioneSession Replica singola (usando il token di sessione)Single Replica (using session token) Maggioranza localeLocal Majority
Coerenza del prefissoConsistent Prefix Replica singolaSingle Replica Maggioranza localeLocal Majority
EventualiEventual Replica singolaSingle Replica Maggioranza localeLocal Majority

Livelli di coerenza e durabilità dei datiConsistency levels and data durability

All'interno di un ambiente di database distribuito a livello globale sussiste una relazione diretta tra il livello di coerenza e la durabilità dei dati in presenza di un'interruzione a livello di area.Within a globally distributed database environment there is a direct relationship between the consistency level and data durability in the presence of a region-wide outage. Quando si sviluppa il piano di continuità aziendale, è necessario conoscere il tempo massimo accettabile prima che l'applicazione venga ripristinata completamente dopo un evento di arresto improvviso.As you develop your business continuity plan, you need to understand the maximum acceptable time before the application fully recovers after a disruptive event. Il tempo necessario per il ripristino completo di un'applicazione è noto come obiettivo del tempo di ripristino (RTO).The time required for an application to fully recover is known as recovery time objective (RTO). È anche necessario conoscere la perdita massima di aggiornamenti di dati recenti che l'applicazione è in grado di tollerare durante il ripristino dopo un evento di arresto improvviso.You also need to understand the maximum period of recent data updates the application can tolerate losing when recovering after a disruptive event. Il periodo di tempo degli aggiornamenti che è possibile perdere è noto come obiettivo del punto di ripristino (RPO).The time period of updates that you might afford to lose is known as recovery point objective (RPO).

La tabella seguente definisce la relazione tra il modello di coerenza e la durabilità dei dati in presenza di un'interruzione a livello di area.The table below defines the relationship between consistency model and data durability in the presence of a region wide outage. È importante notare che in un sistema distribuito, anche con coerenza assoluta, non è possibile avere un database distribuito con un RPO e RTO zero a causa del teorema CAP.It is important to note that in a distributed system, even with strong consistency, it is impossible to have a distributed database with an RPO and RTO of zero due to the CAP Theorem. Per altre informazioni sui motivi, vedere livelli di coerenza in Azure Cosmos DB.To learn more about why, see Consistency levels in Azure Cosmos DB.

Aree geograficheRegion(s) Modalità di replicaReplication mode Livello di coerenzaConsistency level RPORPO RTORTO
11 Master singolo o multimasterSingle or Multi-Master Qualsiasi livello di coerenzaAny Consistency Level < 240 minuti< 240 Minutes <1 settimana<1 Week
>1>1 Master singoloSingle Master Sessione, Prefisso coerente, FinaleSession, Consistent Prefix, Eventual < 15 minuti< 15 minutes < 15 minuti< 15 minutes
>1>1 Master singoloSingle Master Decadimento ristrettoBounded Staleness K & TK & T < 15 minuti< 15 minutes
>1>1 Master singoloSingle Master AssolutaStrong 00 < 15 minuti< 15 minutes
>1>1 MultimasterMulti-Master Sessione, Prefisso coerente, FinaleSession, Consistent Prefix, Eventual < 15 minuti< 15 minutes 00
>1>1 MultimasterMulti-Master Decadimento ristrettoBounded Staleness K & TK & T 00

K = numero di versioni "k" , ovvero aggiornamenti, di un elemento.K = The number of "K" versions (i.e., updates) of an item.

T = intervallo di tempo "t" dall'ultimo aggiornamento.T = The time interval "T" since the last update.

Coerenza assoluta e multimasterStrong consistency and multi-master

Gli account Cosmos configurati per il multimaster non possono essere configurati per la coerenza assoluta, perché non è possibile che un sistema distribuito fornisca un RPO di zero e un RTO pari a zero.Cosmos accounts configured for multi-master cannot be configured for strong consistency as it is not possible for a distributed system to provide an RPO of zero and an RTO of zero. Inoltre, non ci sono vantaggi della latenza di scrittura per l'uso della coerenza assoluta con il multimaster perché qualsiasi scrittura in qualsiasi area deve essere replicata e impegnata in tutte le aree configurate all'interno dell'account.Additionally, there are no write latency benefits for using strong consistency with multi-master as any write into any region must be replicated and committed to all configured regions within the account. In questo modo si ottiene la stessa latenza di scrittura di un singolo account master.This results in the same write latency as a single master account.

Passaggi successiviNext steps

Sono disponibili altre informazioni relative ai compromessi tra coerenza generale e distribuzione globale nei sistemi distribuiti.Learn more about global distribution and general consistency tradeoffs in distributed systems. Vedere gli articoli seguenti:See the following articles: