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 modelli ben definiti nella gamma della coerenza.You can choose from five well-defined models on the consistency spectrum. Dal più forte al più debole, i modelli sono:From strongest to weakest, the models are:

  • AssolutoStrong
  • Obsolescenza associataBounded staleness
  • SessioneSession
  • Coerenza del prefissoConsistent prefix
  • FinaleEventual

Ogni modello offre compromessi tra prestazioni e disponibilità e supportata da contratti di servizio completi.Each model 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 50° percentile, è in genere uguale o inferiore ai 2 millisecondi.The average read latency, at the 50th percentile, is typically 2 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.

La latenza di scrittura per tutti i livelli di coerenza è sempre essere minore di 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.

Per gli account Azure Cosmos configurati con coerenza assoluta, con più di un'area, la latenza di scrittura è necessariamente minore di due volte il round trip time (RTT) tra una delle due aree di sovrapposizione, oltre a 10 millisecondi al 99 ° percentile.For Azure Cosmos accounts configured with strong consistency with more than one region, the write latency is guaranteed to be less than two times round-trip time (RTT) between any of the two farthest regions, plus 10 milliseconds at the 99th percentile.

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. È possibile usare il portale di Azure (passare al pannello delle metriche) per monitorare le latenze di replica tra varie aree associate all'account Azure Cosmos.You can use the Azure portal (go to the Metrics blade) to monitor the replication latencies between various regions that are associated with your Azure Cosmos account.

Livelli di coerenza e velocità effettivaConsistency levels and throughput

  • Per la stessa quantità di unità di richieste, i livelli di coerenza sessione, prefisso coerente e finale forniscono una velocità effettiva di lettura quasi due volte maggiore in confronto ai livelli assoluto e con decadimento ristretto.For the same number of request units, the session, consistent prefix, and eventual consistency levels provide about two times the read throughput when compared with strong and bounded staleness.

  • 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.

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 un'applicazione per un ripristino completo è detta obiettivo 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 si potrebbero permettersi di perdere è detta obiettivo del punto di ripristino (RPO).The time period of updates that you might afford to lose is known as recovery point objective (RPO).

Nella tabella seguente definisce la relazione tra coerenza del modello e 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 region wide outage. È importante notare che in un sistema distribuito, anche con coerenza assoluta, non è possibile disporre di un database distribuito con un RPO e RTO pari a zero a causa di the CAP Theorem.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 per cui, vedere livelli di coerenza in Azure Cosmos DB.To learn more about why, see Consistency levels in Azure Cosmos DB.

Area/eRegion(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 "K" versioni, ad esempio, gli aggiornamenti, di un elemento.K = The number of "K" versions (i.e., updates) of an item.

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

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: