Níveis de coerência no Azure Cosmos DBConsistency levels in Azure Cosmos DB

APLICA-SE A: API do SQL API do Cassandra API do Gremlin API de Tabela API do Azure Cosmos DB para MongoDB

Os bancos de dados distribuídos que dependem da replicação para alta disponibilidade, baixa latência ou ambos, devem fazer uma compensação fundamental entre a consistência de leitura, a disponibilidade, a latência e a taxa de transferência, conforme definido pelo PACLC teorema.Distributed databases that rely on replication for high availability, low latency, or both, must make a fundamental tradeoff between the read consistency, availability, latency, and throughput as defined by the PACLC theorem. O transação atômica do modelo de consistência forte é o padrão ouro de programação de dados.The linearizability of the strong consistency model is the gold standard of data programmability. Mas ele adiciona um preço alto de latências de gravação maiores devido a dados que têm de ser replicados e confirmados em grandes distâncias.But it adds a steep price from higher write latencies due to data having to replicate and commit across large distances. A consistência forte também pode ser afetada da disponibilidade reduzida (durante as falhas) porque os dados não podem ser replicados e confirmados em todas as regiões.Strong consistency may also suffer from reduced availability (during failures) because data cannot replicate and commit in every region. A consistência eventual oferece maior disponibilidade e melhor desempenho, mas é mais difícil programar aplicativos, pois os dados podem não ser totalmente consistentes em todas as regiões.Eventual consistency offers higher availability and better performance, but its more difficult to program applications because data may not be completely consistent across all regions.

A maioria dos bancos de dados NoSQL distribuídos comercialmente disponíveis no mercado atualmente fornece uma consistência forte e eventual.Most commercially available distributed NoSQL databases available in the market today provide only strong and eventual consistency. O Azure Cosmos DB oferece cinco níveis bem definidos.Azure Cosmos DB offers five well-defined levels. Do mais forte ao mais fraco, os níveis são:From strongest to weakest, the levels are:

  • ForteStrong
  • Desatualização limitadaBounded staleness
  • SessãoSession
  • Prefixo consistenteConsistent prefix
  • IminenteEventual

Cada nível fornece compensações de desempenho e disponibilidade.Each level provides availability and performance tradeoffs. A imagem a seguir mostra os diferentes níveis de consistência como um espectro.The following image shows the different consistency levels as a spectrum.

Consistência como um espectro

Os níveis de consistência são independentes de região e são garantidos para todas as operações, independentemente da região da qual as leituras e gravações são atendidas, o número de regiões associadas à sua conta do Azure Cosmos ou se sua conta está configurada com uma ou várias regiões de gravação.The consistency levels are region-agnostic and are guaranteed for all operations regardless of the region from which the reads and writes are served, the number of regions associated with your Azure Cosmos account, or whether your account is configured with a single or multiple write regions.

Níveis de consistência e APIs do Azure Cosmos DBConsistency levels and Azure Cosmos DB APIs

O Azure Cosmos DB fornece suporte nativo para APIs compatíveis com protocolo de conexão para bancos de dados populares.Azure Cosmos DB provides native support for wire protocol-compatible APIs for popular databases. Isso inclui o MongoDB, o Apache Cassandra, o Gremlin e o armazenamento de tabelas do Azure.These include MongoDB, Apache Cassandra, Gremlin, and Azure Table storage. Ao usar a API Gremlin e API de Tabela, o nível de consistência padrão configurado na conta do Azure cosmos é usado.When using Gremlin API and Table API, the default consistency level configured on the Azure Cosmos account is used. Para obter detalhes sobre o mapeamento de nível de consistência entre API do Cassandra ou a API para o MongoDB e os níveis de consistência do Azure Cosmos DB, consulte API do Cassandra mapeamento de consistência e API para mapeamento de consistência do MongoDB.For details on consistency level mapping between Cassandra API or the API for MongoDB and Azure Cosmos DB's consistency levels see, Cassandra API consistency mapping and API for MongoDB consistency mapping.

Escopo da coerência de leituraScope of the read consistency

A consistência de leitura se aplica a uma única operação de leitura com escopo definido em uma partição lógica.Read consistency applies to a single read operation scoped within a logical partition. A operação de leitura pode ser emitida por um cliente remoto ou um procedimento armazenado.The read operation can be issued by a remote client or a stored procedure.

Configurar o nível de consistência padrãoConfigure the default consistency level

Você pode configurar o nível de coerência padrão em sua conta do Azure Cosmos a qualquer momento.You can configure the default consistency level on your Azure Cosmos account at any time. O nível de consistência padrão configurado em sua conta se aplica a todos os bancos de dados e contêineres do Azure Cosmos sob essa conta.The default consistency level configured on your account applies to all Azure Cosmos databases and containers under that account. Todas as leituras e consultas emitidas em um contêiner ou banco de dados usam o nível de consistência especificado por padrão.All reads and queries issued against a container or a database use the specified consistency level by default. Para obter mais informações, consulte configurar o nível de consistência padrão.To learn more, see how to configure the default consistency level. Você também pode substituir o nível de consistência padrão para uma solicitação específica, para saber mais, consulte como substituir o artigo de nível de consistência padrão .You can also override the default consistency level for a specific request, to learn more, see how to Override the default consistency level article.

Importante

É necessário recriar qualquer instância do SDK depois de alterar o nível de consistência padrão.It is required to recreate any SDK instance after changing the default consistency level. Isso pode ser feito reiniciando o aplicativo.This can be done by restarting the application. Isso garante que o SDK use o novo nível de consistência padrão.This ensures the SDK uses the new default consistency level.

Garantias associadas a níveis de coerênciaGuarantees associated with consistency levels

Azure Cosmos DB garante que 100 por cento das solicitações de leitura atendam à garantia de consistência para o nível de consistência escolhido.Azure Cosmos DB guarantees that 100 percent of read requests meet the consistency guarantee for the consistency level chosen. As definições precisas dos cinco níveis de consistência no Azure Cosmos DB usando a linguagem de especificação TLA + são fornecidas no repositório GitHub Azure-Cosmos-TLA .The precise definitions of the five consistency levels in Azure Cosmos DB using the TLA+ specification language are provided in the azure-cosmos-tla GitHub repo.

A semântica dos cinco níveis de consistência é descrita nas seções a seguir.The semantics of the five consistency levels are described in the following sections.

Coerência forteStrong consistency

A coerência forte oferece uma garantia de transação atômica.Strong consistency offers a linearizability guarantee. Transação atômica refere-se ao fornecimento de solicitações simultaneamente.Linearizability refers to serving requests concurrently. As leituras são garantidas para retornar a versão mais recente de um item.The reads are guaranteed to return the most recent committed version of an item. Um cliente nunca vê uma gravação não comprometida ou parcial.A client never sees an uncommitted or partial write. Os usuários sempre terão a garantia de ler a última gravação confirmada.Users are always guaranteed to read the latest committed write.

O gráfico a seguir ilustra a forte consistência com notas musicais.The following graphic illustrates the strong consistency with musical notes. Depois que os dados são gravados na região "oeste dos EUA 2", ao ler os dados de outras regiões, você obtém o valor mais recente:After the data is written to the "West US 2" region, when you read the data from other regions, you get the most recent value:

Ilustração do nível de consistência forte

Coerência de desatualização limitadaBounded staleness consistency

Na consistência de desatualização limitada, as leituras são garantidas de honrar a garantia de prefixo consistente.In bounded staleness consistency, the reads are guaranteed to honor the consistent-prefix guarantee. As leituras podem atrasar por trás das gravações por no máximo "K" versões (ou seja, "Atualizações") de um item ou por um intervalo de tempo "T" , o que for atingido primeiro.The reads might lag behind writes by at most "K" versions (that is, "updates") of an item or by "T" time interval, whichever is reached first. Em outras palavras, quando você escolhe a desatualização limitada, a "desatualização" pode ser configurada de duas maneiras:In other words, when you choose bounded staleness, the "staleness" can be configured in two ways:

  • O número de versões (K) do itemThe number of versions (K) of the item
  • As leituras de intervalo de tempo (T) podem atrasar por trás das gravaçõesThe time interval (T) reads might lag behind the writes

Para uma única conta de região, o valor mínimo de K e T é de 10 operações de gravação ou 5 segundos.For a single region account, the minimum value of K and T is 10 write operations or 5 seconds. Para contas de várias regiões, o valor mínimo de K e T é de 100.000 operações de gravação ou 300 segundos.For multi-region accounts the minimum value of K and T is 100,000 write operations or 300 seconds.

A desatualização limitada oferece a ordem global total fora da "janela de desatualização".Bounded staleness offers total global order outside of the "staleness window." Quando um cliente executa operações de leitura em uma região que aceita gravações, as garantias fornecidas pela consistência de desatualização limitada são idênticas às garantias pela consistência forte.When a client performs read operations within a region that accepts writes, the guarantees provided by bounded staleness consistency are identical to those guarantees by the strong consistency. À medida que a janela de desatualização se aproxima da hora ou das atualizações, o que for mais próximo, o serviço limitará novas gravações para permitir que a replicação acompanhe e obedeça à garantia de consistência.As the staleness window approaches for either time or updates, whichever is closer, the service will throttle new writes to allow replication to catch up and honor the consistency guarantee.

Dentro da janela de desatualização, a desatualização limitada fornece as seguintes garantias de consistência:Inside the staleness window, Bounded Staleness provides the following consistency guarantees:

  • Consistência para clientes na mesma região para uma conta com uma única região de gravação = forteConsistency for clients in the same region for an account with single write region = Strong

  • Consistência para clientes em regiões diferentes para uma conta com uma única região de gravação = prefixo consistenteConsistency for clients in different regions for an account with single write region = Consistent Prefix

  • Consistência para clientes que gravam em uma única região para uma conta com várias regiões de gravação = prefixo consistenteConsistency for clients writing to a single region for an account with multiple write regions = Consistent Prefix

  • Consistência para clientes que gravam em regiões diferentes para uma conta com várias regiões de gravação = eventualConsistency for clients writing to different regions for an account with multiple write regions = Eventual

    A desatualização limitada é frequentemente escolhida por aplicativos distribuídos globalmente que esperam latências de baixa gravação, mas exigem garantia de ordem global total.Bounded staleness is frequently chosen by globally distributed applications that expect low write latencies but require total global order guarantee. A desatualização limitada é excelente para aplicativos que apresentam colaboração e compartilhamento de grupos, cotação de ações, publicação/assinatura/enfileiramento, etc. O gráfico a seguir ilustra a consistência de desatualização limitada com notas musicais.Bounded staleness is great for applications featuring group collaboration and sharing, stock ticker, publish-subscribe/queueing etc. The following graphic illustrates the bounded staleness consistency with musical notes. Depois que os dados são gravados na região "oeste dos EUA 2", as regiões "leste dos EUA 2" e "leste da Austrália" lêem o valor escrito com base no tempo de retardo máximo configurado ou no máximo de operações:After the data is written to the "West US 2" region, the "East US 2" and "Australia East" regions read the written value based on the configured maximum lag time or the maximum operations:

    Ilustração do nível de consistência de desatualização limitada

Coerência de sessãoSession consistency

Na consistência da sessão, as leituras de uma única sessão de cliente têm a garantia de honrar as leituras de prefixo consistente, monotônico, gravações de monotônico, leitura e gravação e leituras de escrita a seguir.In session consistency, within a single client session reads are guaranteed to honor the consistent-prefix, monotonic reads, monotonic writes, read-your-writes, and write-follows-reads guarantees. Isso pressupõe uma única sessão de "gravador" ou o compartilhamento do token de sessão para vários gravadores.This assumes a single "writer" session or sharing the session token for multiple writers.

Os clientes fora da sessão que executam gravações verão as seguintes garantias:Clients outside of the session performing writes will see the following guarantees:

  • Consistência para clientes na mesma região para uma conta com uma única região de gravação = prefixo consistenteConsistency for clients in same region for an account with single write region = Consistent Prefix

  • Consistência para clientes em regiões diferentes para uma conta com uma única região de gravação = prefixo consistenteConsistency for clients in different regions for an account with single write region = Consistent Prefix

  • Consistência para clientes que gravam em uma única região para uma conta com várias regiões de gravação = prefixo consistenteConsistency for clients writing to a single region for an account with multiple write regions = Consistent Prefix

  • Consistência para clientes que gravam em várias regiões para uma conta com várias regiões de gravação = eventualConsistency for clients writing to multiple regions for a account with multiple write regions = Eventual

    A consistência da sessão é o nível de consistência mais amplamente usado para a região única, bem como para aplicativos distribuídos globalmente.Session consistency is the most widely used consistency level for both single region as well as globally distributed applications. Ele fornece latências de gravação, disponibilidade e taxa de transferência de leitura comparável à de consistência eventual, mas também fornece as garantias de consistência que atendem às necessidades dos aplicativos escritos para operar no contexto de um usuário.It provides write latencies, availability, and read throughput comparable to that of eventual consistency but also provides the consistency guarantees that suit the needs of applications written to operate in the context of a user. O gráfico a seguir ilustra a consistência da sessão com notas musicais.The following graphic illustrates the session consistency with musical notes. O "gravador oeste dos EUA 2" e o "leitor oeste dos EUA 2" estão usando a mesma sessão (sessão A) para que ambos leiam os mesmos dados ao mesmo tempo.The "West US 2 writer" and the "West US 2 reader" are using the same session (Session A) so they both read the same data at the same time. Enquanto a região "leste da Austrália" está usando a "sessão B", ela recebe dados mais tarde, mas na mesma ordem que as gravações.Whereas the "Australia East" region is using "Session B" so, it receives data later but in the same order as the writes.

    Ilustração do nível de consistência da sessão

Coerência de prefixo coerenteConsistent prefix consistency

Na opção de prefixo consistente, as atualizações que são retornadas contêm algum prefixo de todas as atualizações, sem intervalos.In consistent prefix option, updates that are returned contain some prefix of all the updates, with no gaps. O nível de consistência de prefixo consistente garante que as leituras nunca vejam gravações fora de ordem.Consistent prefix consistency level guarantees that reads never see out-of-order writes.

Se as gravações foram executadas na ordem A, B, C , um cliente vê A , A,B ou A,B,C , mas nunca permutações fora de ordem, como A,C ou B,A,C .If writes were performed in the order A, B, C, then a client sees either A, A,B, or A,B,C, but never out-of-order permutations like A,C or B,A,C. O prefixo consistente fornece latências de gravação, disponibilidade e taxa de transferência de leitura comparáveis à de consistência eventual, mas também fornece as garantias de ordem que atendem às necessidades dos cenários em que a ordem é importante.Consistent Prefix provides write latencies, availability, and read throughput comparable to that of eventual consistency, but also provides the order guarantees that suit the needs of scenarios where order is important.

Abaixo estão as garantias de consistência para o prefixo consistente:Below are the consistency guarantees for Consistent Prefix:

  • Consistência para clientes na mesma região para uma conta com uma única região de gravação = prefixo consistenteConsistency for clients in same region for an account with single write region = Consistent Prefix
  • Consistência para clientes em regiões diferentes para uma conta com uma única região de gravação = prefixo consistenteConsistency for clients in different regions for an account with single write region = Consistent Prefix
  • Consistência para clientes que gravam em uma única região para uma conta com várias regiões de gravação = prefixo consistenteConsistency for clients writing to a single region for an account with multiple write region = Consistent Prefix
  • Consistência para clientes que gravam em várias regiões para uma conta com várias regiões de gravação = eventualConsistency for clients writing to multiple regions for an account with multiple write region = Eventual

O gráfico a seguir ilustra a consistência do prefixo de consistência com notas musicais.The following graphic illustrates the consistency prefix consistency with musical notes. Em todas as regiões, as leituras nunca veem gravações fora de ordem:In all the regions, the reads never see out of order writes:

Ilustração de um prefixo consistente

Coerência eventualEventual consistency

Em consistência eventual, não há garantia de classificação para leituras.In eventual consistency, there's no ordering guarantee for reads. Na ausência de qualquer gravação adicional, as réplicas eventualmente convergem.In the absence of any further writes, the replicas eventually converge.
A consistência eventual é a forma mais fraca de consistência, pois um cliente pode ler os valores mais antigos do que aqueles que tinha lido anteriormente.Eventual consistency is the weakest form of consistency because a client may read the values that are older than the ones it had read before. A consistência eventual é ideal quando o aplicativo não requer nenhuma garantia de ordenação.Eventual consistency is ideal where the application does not require any ordering guarantees. Os exemplos incluem a contagem de retweets, curtidos ou comentários não-threaded.Examples include count of Retweets, Likes, or non-threaded comments. O gráfico a seguir ilustra a consistência eventual com notas musicais.The following graphic illustrates the eventual consistency with musical notes.

viIllustration de consistência eventual

Garantias de consistência na práticaConsistency guarantees in practice

Na prática, muitas vezes você pode obter garantias de consistência mais fortes.In practice, you may often get stronger consistency guarantees. Garantias de consistência para uma operação de leitura correspondem à atualização e ordenação do estado do banco de dados que você solicita.Consistency guarantees for a read operation correspond to the freshness and ordering of the database state that you request. Consistência de leitura é vinculada ao pedido e a propagação das operações de gravação/atualização.Read-consistency is tied to the ordering and propagation of the write/update operations.

Se não houver nenhuma operação de gravação no banco de dados, uma operação de leitura com níveis de consistência eventual, de sessão ou de prefixo consistente provavelmente produzirá os mesmos resultados que uma operação de leitura com um nível de consistência forte.If there are no write operations on the database, a read operation with eventual, session, or consistent prefix consistency levels is likely to yield the same results as a read operation with strong consistency level.

Se sua conta do Azure Cosmos estiver configurada com um nível de consistência diferente da consistência forte, você poderá descobrir a probabilidade de que seus clientes possam obter leituras fortes e consistentes para suas cargas de trabalho examinando a métrica do PBS (desatualização limitada) do Probabilistic .If your Azure Cosmos account is configured with a consistency level other than the strong consistency, you can find out the probability that your clients may get strong and consistent reads for your workloads by looking at the Probabilistically Bounded Staleness (PBS) metric. Essa métrica é exposta no portal do Azure, para obter mais informações, consulte métrica Monitor Probabilistic Bounded Staleness (PBS).This metric is exposed in the Azure portal, to learn more, see Monitor Probabilistically Bounded Staleness (PBS) metric.

A desatualização limitada probabilística mostra o quão eventual é a sua coerência eventual.Probabilistic bounded staleness shows how eventual is your eventual consistency. Essa métrica fornece uma percepção da frequência com que você pode obter uma consistência mais forte do que o nível de consistência configurado atualmente em sua conta do Azure Cosmos.This metric provides an insight into how often you can get a stronger consistency than the consistency level that you have currently configured on your Azure Cosmos account. Em outras palavras, você pode ver a probabilidade (medida em milissegundos) de obter leituras fortemente consistentes para uma combinação de regiões de gravação e leitura.In other words, you can see the probability (measured in milliseconds) of getting strongly consistent reads for a combination of write and read regions.

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 média de leitura, no 50 º percentil, normalmente é de 4 milissegundos ou menos.The average read latency, at the 50th percentile, is typically 4 milliseconds or less.

A latência de gravação para todos os níveis de consistência sempre é garantida para menos de 10 milissegundos no 99 º percentil.The write latency for all consistency levels is always guaranteed to be less than 10 milliseconds at the 99th percentile. 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. 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.

Latência de gravação e consistência forteWrite latency and Strong consistency

Para contas do Azure Cosmos configuradas com consistência forte com mais de uma região, a latência de gravação é igual a duas vezes a RTT (tempo de ida e volta) entre qualquer uma das duas regiões mais distantes, mais 10 milissegundos no 99 º percentil.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. O RTT de rede alto entre as regiões será convertido em latência mais alta para solicitações de Cosmos DB, uma vez que a consistência forte conclui uma operação somente depois de garantir que ela tenha sido confirmada em todas as regiões de uma conta.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.

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 SLAs de latência para o RTT entre duas regiões do Azure, no entanto, publica Estatísticas de latência de ida e volta da rede do Azure.Azure networking doesn't provide any latency SLAs for the RTT between any two Azure regions, however it does publish Azure network round-trip latency statistics. 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 métricas, selecione a guia consistência) para monitorar as latências de replicação entre várias regiões associadas à sua conta do Azure Cosmos.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

A consistência forte para contas com regiões que abrangem mais de 5000 milhas (8000 quilômetros) é bloqueada por padrão devido à alta latência de gravação.Strong consistency for accounts with regions spanning more than 5000 miles (8000 kilometers) is blocked by default due to high write latency. Para habilitar esse recurso, entre em contato com o suporte.To enable this capability please contact support.

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

  • Para uma desatualização forte e limitada, as leituras são feitas em duas réplicas em um conjunto de quatro réplicas (quorum minoritário) para fornecer garantias de consistência.For strong and bounded staleness, reads are done against two replicas in a four replica set (minority quorum) to provide consistency guarantees. A sessão, o prefixo consistente e a eventualidade fazem leituras de réplica única.Session, consistent prefix and eventual do single replica reads. O resultado é que, para o mesmo número de unidades de solicitação, a taxa de transferência de leitura para forte e a desatualização limitada é a metade dos outros níveis de consistência.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.

  • 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ível de coerênciaConsistency Level Leituras de quorumQuorum Reads Gravações de quorumQuorum Writes
ForteStrong Minoria localLocal Minority Maioria globalGlobal Majority
Desatualização limitadaBounded Staleness Minoria localLocal Minority Maioria localLocal Majority
SessãoSession Réplica única (usando o token de sessão)Single Replica (using session token) Maioria localLocal Majority
Prefixo consistenteConsistent Prefix Réplica únicaSingle Replica Maioria localLocal Majority
IminenteEventual Réplica únicaSingle Replica Maioria localLocal Majority

Observação

O custo da RU/s de leituras de leituras minoritárias locais é duas vezes maior que os níveis de consistência mais fracos, pois as leituras são feitas de duas réplicas para fornecer garantias de consistência para a forte e a desatualização limitada.The RU/s cost of reads for Local Minority reads are twice that of weaker consistency levels because reads are made from two replicas to provide consistency guarantees for Strong and Bounded Staleness.

Níveis de consistência e durabilidade dos 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 que um aplicativo se recupere totalmente é conhecido como RTO( objetivo de tempo de recuperação ).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 perder é conhecido como RPO( objetivo de ponto de recuperação ).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 o modelo de consistência e a durabilidade dos dados na presença de uma interrupção em toda a região.The table below defines the relationship between consistency model and data durability in the presence of a region wide outage. É importante observar que, em um sistema distribuído, mesmo com uma consistência forte, é impossível ter um banco de dados distribuído com RPO e RTO de zero devido a teoremas de ponta.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 CAP Theorem.

Região (ões)Region(s) Modo de replicaçãoReplication mode Nível de consistênciaConsistency level RPORPO RTORTO
11 Uma ou várias regiões de gravaçãoSingle or Multiple write regions Qualquer nível de consistênciaAny Consistency Level < 240 minutos< 240 Minutes < 1 semana<1 Week
> 1>1 Região de gravação únicaSingle write region Sessão, Prefixo Consistente, EventualSession, Consistent Prefix, Eventual < 15 minutos< 15 minutes < 15 minutos< 15 minutes
> 1>1 Região de gravação únicaSingle write region Desatualização limitadaBounded Staleness K & TK & T < 15 minutos< 15 minutes
> 1>1 Região de gravação únicaSingle write region ForteStrong 00 < 15 minutos< 15 minutes
> 1>1 Várias regiões de gravaçãoMultiple write regions Sessão, Prefixo Consistente, EventualSession, Consistent Prefix, Eventual < 15 minutos< 15 minutes 00
> 1>1 Várias regiões de gravaçãoMultiple write regions Desatualização limitadaBounded Staleness K & TK & T 00

K = o número de versões "K" (ou seja, 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.

Para uma única conta de região, o valor mínimo de K e T é de 10 operações de gravação ou 5 segundos.For a single region account, the minimum value of K and T is 10 write operations or 5 seconds. Para contas de várias regiões, o valor mínimo de K e T é de 100.000 operações de gravação ou 300 segundos.For multi-region accounts the minimum value of K and T is 100,000 write operations or 300 seconds. Isso define o RPO mínimo de dados ao usar a desatualização limitada.This defines the minimum RPO for data when using Bounded Staleness.

Consistência forte e várias regiões de gravaçãoStrong consistency and multiple write regions

As contas do cosmos configuradas com várias regiões de gravação não podem ser configuradas para uma consistência forte, pois não é possível que um sistema distribuído forneça um RPO de zero e um RTO igual a zero.Cosmos accounts configured with multiple write regions 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. Além disso, não há benefícios de latência de gravação sobre o uso de consistência forte com várias regiões de gravação, pois uma gravação em qualquer região deve ser replicada e confirmada em todas as regiões configuradas na conta.Additionally, there are no write latency benefits on using strong consistency with multiple write regions because a write to any region must be replicated and committed to all configured regions within the account. Isso resulta na mesma latência de gravação que uma única conta de região de gravação.This results in the same write latency as a single write region account.

Leituras adicionaisAdditional reading

Para saber mais sobre conceitos de coerência, leia os artigos a seguir:To learn more about consistency concepts, read the following articles:

Próximas etapasNext steps

Para saber mais sobre os níveis de coerência no Azure Cosmos DB, leia os artigos a seguir:To learn more about consistency levels in Azure Cosmos DB, read the following articles: