Compensações de consistência, disponibilidade e desempenhoConsistency, availability, and performance tradeoffs

Bancos de dados distribuídos que dependem de replicação para alta disponibilidade, baixa latência ou ambos devem fazer compensações.Distributed databases that rely on replication for high availability, low latency, or both must make tradeoffs. As compensações estão entre consistência de leitura versus a disponibilidade, latência e taxa de transferência.The tradeoffs are between read consistency vs. availability, latency, and throughput.

O Azure Cosmos DB aborda a coerência de dados como um espectro de opções.Azure Cosmos DB approaches data consistency as a spectrum of choices. Essa abordagem inclui mais opções que os dois extremos de consistência forte e eventual.This approach includes more options than the two extremes of strong and eventual consistency. Você pode escolher entre cinco modelos bem definidos no espectro de consistência.You can choose from five well-defined models on the consistency spectrum. Do mais forte ao mais fraco, os modelos são:From strongest to weakest, the models are:

  • ForteStrong
  • Desatualização LimitadaBounded staleness
  • SessãoSession
  • Prefixo coerenteConsistent prefix
  • EventualEventual

Cada modelo fornece disponibilidade e compensações de desempenho e é respaldo por SLAs abrangentes.Each model provides availability and performance tradeoffs and is backed by comprehensive SLAs.

Níveis de coerência e latênciaConsistency levels and latency

A latência de leitura para todos os níveis de coerência é sempre asseguradamente menor que 10 milissegundos no 99º percentil contando com suporte do SLA.The read latency for all consistency levels is always guaranteed to be less than 10 milliseconds at the 99th percentile. A latência de leitura é garantida por SLA.This read latency is backed by the SLA. A latência de leitura média, no 50º %, é normalmente 2 milissegundos ou menos.The average read latency, at the 50th percentile, is typically 2 milliseconds or less. Contas do Cosmos do Azure que abrangem várias regiões e são configuradas com coerência forte são uma exceção a essa garantia.Azure Cosmos accounts that span several regions and are configured with strong consistency are an exception to this guarantee.

A latência de gravação para todos os níveis de consistência sempre é garantida para ser menor que 10 milissegundos no percentil 99.The write latency for all consistency levels is always guaranteed to be less than 10 milliseconds at the 99th percentile. A latência de gravação é garantida por SLA.This write latency is backed by the SLA. A latência média de gravação, 50 º percentil, geralmente é 5 milissegundos ou menos.The average write latency, at the 50th percentile, is usually 5 milliseconds or less.

Para contas do Azure Cosmos configuradas com consistência forte com mais de uma região, a latência de gravação é garantido que seja menor que duas vezes tempo ida e volta (RTT) entre qualquer uma das duas regiões mais distantes, além de 10 milissegundos no percentil 99.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.

A latência RTT é uma função de distância à velocidade da luz e a topologia de rede exata do Azure.The exact RTT latency is a function of speed-of-light distance and the Azure networking topology. A Rede do Azure não fornece nenhum SLA de latência para o RTT entre nenhum par de regiões do Azure.Azure networking doesn't provide any latency SLAs for the RTT between any two Azure regions. Para sua conta do Azure Cosmos, latências de replicação são exibidas no portal do Azure.For your Azure Cosmos account, replication latencies are displayed in the Azure portal. Você pode usar o portal do Azure (vá para a folha de métricas) para monitorar as latências de replicação entre várias regiões que estão associados com sua conta do Cosmos do Azure.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.

Níveis de coerência e taxa de transferênciaConsistency levels and throughput

  • Para o mesmo número de unidades de solicitação, a sessão, o prefixo consistente e os níveis de consistência eventuais fornecem uma taxa de leitura de aproximadamente 2X quando comparados com a rigidez forte e limitada.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.

  • Para um determinado tipo de operação de gravação, como inserir, substituir, submeter, excluir, a taxa de transferência de gravação para unidades de solicitação é idêntica para todos os níveis de consistência.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.

Níveis de consistência e durabilidade de dadosConsistency levels and data durability

Em um ambiente de banco de dados distribuído globalmente, há uma relação direta entre a durabilidade dos dados e o nível de consistência no caso de uma interrupção em toda a região.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. À medida que você vai desenvolvendo o plano de continuidade dos negócios, precisará saber qual é o tempo máximo aceitável antes que o aplicativo se recupere completamente após um evento de interrupção.As you develop your business continuity plan, you need to understand the maximum acceptable time before the application fully recovers after a disruptive event. O tempo necessário para um aplicativo se recupere totalmente é conhecido como objetivo de tempo de recuperação (RTO).The time required for an application to fully recover is known as recovery time objective (RTO). Também é necessário saber o período máximo de atualizações de dados recentes que o aplicativo pode perder sem maiores problemas durante a recuperação após um evento de interrupção.You also need to understand the maximum period of recent data updates the application can tolerate losing when recovering after a disruptive event. O período de tempo das atualizações que você pode pode perder é conhecido como objetivo de ponto de recuperação (RPO).The time period of updates that you might afford to lose is known as recovery point objective (RPO).

A tabela a seguir define a relação entre a durabilidade de dados e o modelo de consistência na presença de interrupção ampla de região.The table below defines the relationship between consistency model and data durability in the presence of region wide outage. É importante observar que em um sistema distribuído, mesmo com coerência forte, é impossível ter um banco de dados distribuído com um RPO e RTO de zero devido ao Teorema de 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. Para saber mais sobre o motivo, consulte níveis de consistência no Azure Cosmos DB.To learn more about why, see Consistency levels in Azure Cosmos DB.

RegiõesRegion(s) Modo de replicaçãoReplication mode Nível de coerênciaConsistency level RPORPO RTORTO
11 Único ou vários mestresSingle or Multi-Master Qualquer nível de consistênciaAny Consistency Level < 240 minutos< 240 Minutes < 1 semana<1 Week
> 1>1 Único mestreSingle Master Sessão, Prefixo Consistente, EventualSession, Consistent Prefix, Eventual < 15 minutos< 15 minutes < 15 minutos< 15 minutes
> 1>1 Único mestreSingle Master Bounded stalenessBounded Staleness K & TK & T < 15 minutos< 15 minutes
> 1>1 Único mestreSingle Master StrongStrong 00 < 15 minutos< 15 minutes
> 1>1 Vários mestresMulti-Master Sessão, Prefixo Consistente, EventualSession, Consistent Prefix, Eventual < 15 minutos< 15 minutes 00
> 1>1 Vários mestresMulti-Master Bounded stalenessBounded Staleness K & TK & T 00

K = o número de "K" versões (ou seja, as atualizações) de um item.K = The number of "K" versions (i.e., updates) of an item.

T = o intervalo de tempo "T" desde a última atualização.T = The time interval "T" since the last update.

Próximas etapasNext steps

Saiba mais sobre a distribuição global e compensações de consistência geral nos sistemas distribuídos.Learn more about global distribution and general consistency tradeoffs in distributed systems. Confira os seguintes artigos:See the following articles: