Niveles de coherencia en Azure Cosmos DBConsistency levels in Azure Cosmos DB

Las bases de datos distribuidas que dependen de la replicación para alta disponibilidad, baja latencia o ambas, deben equilibrar la coherencia de lectura, la disponibilidad, la latencia y el rendimiento, tal como se define en el teorema de PACLC.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. La linearización del modelo de coherencia fuerte es el estándar de oro de la programación de datos,The linearizability of the strong consistency model is the gold standard of data programmability. pero agrega un precio excesivo a las latencias de escritura mayores debido a que los datos tienen que replicarse y confirmarse entre grandes distancias.But it adds a steep price from higher write latencies due to data having to replicate and commit across large distances. Una coherencia fuerte también puede verse afectada por una disponibilidad reducida (durante errores) porque los datos no se puedan replicar y confirmar en cada región.Strong consistency may also suffer from reduced availability (during failures) because data cannot replicate and commit in every region. La coherencia posible ofrece una mayor disponibilidad y un mejor rendimiento, pero es más difícil programar aplicaciones porque es posible que los datos no sean totalmente coherentes en todas las regiones.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.

La mayoría de las bases de datos NoSQL distribuidas disponibles comercialmente en el mercado hoy en día solo ofrecen coherencia fuerte y posible.Most commercially available distributed NoSQL databases available in the market today provide only strong and eventual consistency. Azure Cosmos DB ofrece cinco niveles bien definidos.Azure Cosmos DB offers five well-defined levels. De más fuerte a más débil, los niveles son:From strongest to weakest, the levels are:

  • FuerteStrong
  • Obsolescencia limitadaBounded staleness
  • De sesiónSession
  • De prefijo coherenteConsistent prefix
  • PosibleEventual

Cada nivel proporciona equilibrio entre la disponibilidad y el rendimiento.Each level provides availability and performance tradeoffs. En la imagen siguiente se muestran los distintos niveles de coherencia como un espectro.The following image shows the different consistency levels as a spectrum.

Coherencia como espectro

Los niveles de coherencia son independientes de la región y están garantizados para todas las operaciones, independientemente de la región desde la que se realizan las operaciones de lectura y escritura, del número de regiones asociadas con la cuenta de Azure Cosmos o de si la cuenta está configurada para una o varias regiones de escritura.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.

Niveles de coherencia y API de Azure Cosmos DBConsistency levels and Azure Cosmos DB APIs

Azure Cosmos DB también proporciona compatibilidad nativa con las API compatibles con el protocolo de conexión para bases de datos populares.Azure Cosmos DB provides native support for wire protocol-compatible APIs for popular databases. Entre ellas se incluyen MongoDB, Apache Cassandra, Gremlin y Azure Table Storage.These include MongoDB, Apache Cassandra, Gremlin, and Azure Table storage. Al usar Gremlin API y Table API, se usa el nivel de coherencia predeterminado configurado en la cuenta de Azure Cosmos.When using Gremlin API and Table API, the default consistency level configured on the Azure Cosmos account is used. Para más información sobre la asignación del nivel de coherencia entre Cassandra API o la API para MongoDB y los niveles de coherencia de Azure Cosmos DB, consulte Asignación de coherencia de Cassandra API y Asignación de coherencia de API para 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.

Ámbito de la coherencia de lecturaScope of the read consistency

La coherencia de lectura se aplica a una sola operación de lectura limitada a una partición lógica.Read consistency applies to a single read operation scoped within a logical partition. Un cliente remoto o un procedimiento almacenado pueden emitir la operación de lectura.The read operation can be issued by a remote client or a stored procedure.

Configuración del nivel de coherencia predeterminadoConfigure the default consistency level

Puede configurar el nivel de coherencia predeterminado de su cuenta de Azure Cosmos en cualquier momento.You can configure the default consistency level on your Azure Cosmos account at any time. El nivel de coherencia predeterminado configurado en su cuenta se aplica a todas las bases de datos y contenedores de bases de datos de Azure Cosmos de esa cuenta.The default consistency level configured on your account applies to all Azure Cosmos databases and containers under that account. Todas las operaciones de lectura y consulta que se emitan con arreglo a un contenedor o una base de datos usan el nivel de coherencia especificado de forma predeterminada.All reads and queries issued against a container or a database use the specified consistency level by default. Para más información, consulte cómo configurar el nivel de coherencia predeterminado.To learn more, see how to configure the default consistency level. También puede invalidar el nivel de coherencia predeterminado para una solicitud específica. Para obtener más información, consulte el artículo Invalidación del nivel de coherencia predeterminado.You can also override the default consistency level for a specific request, to learn more, see how to Override the default consistency level article.

Garantías asociadas a los niveles de coherenciaGuarantees associated with consistency levels

Azure Cosmos DB garantiza que el 100 por ciento de las solicitudes de lectura cumplan con la garantía de coherencia del nivel de coherencia que elija.Azure Cosmos DB guarantees that 100 percent of read requests meet the consistency guarantee for the consistency level chosen. Las definiciones precisas de los cinco niveles de coherencia de Azure Cosmos DB que usan el lenguaje de especificación TLA+ se proporcionan en el repositorio azure-cosmos-tla de GitHub.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.

Aquí se describe la semántica de los cinco niveles de coherencia:The semantics of the five consistency levels are described here:

  • Alta : La coherencia fuerte ofrece una garantía de linearización.Strong : Strong consistency offers a linearizability guarantee. La linearización hace referencia a la capacidad de servir solicitudes simultáneamente.Linearizability refers to serving requests concurrently. Se garantiza que las lecturas devuelven la versión más reciente de un elemento.The reads are guaranteed to return the most recent committed version of an item. Un cliente nunca ve una escritura no confirmada ni parcial.A client never sees an uncommitted or partial write. Se garantiza que los usuarios siempre leerán la escritura confirmada más reciente.Users are always guaranteed to read the latest committed write.

    En el gráfico siguiente se ilustra la coherencia fuerte con notas musicales.The following graphic illustrates the strong consistency with musical notes. Una vez que los datos se han escrito en la región "Oeste de EE. UU. 2", al leer los datos de otras regiones, obtiene el valor más reciente: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:

    Ilustración del nivel de coherencia fuerte

  • De obsolescencia entrelazada : Se garantiza que las lecturas respetan la garantía de prefijo coherente.Bounded staleness : The reads are guaranteed to honor the consistent-prefix guarantee. Las lecturas pueden ir con retraso respecto a las escrituras en un máximo de versiones "K" (es decir, "actualizaciones") de un elemento o en el intervalo de tiempo "T" , lo que se lea primero.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. En otras palabras, cuando elige la obsolescencia limitada, la "obsolescencia" se puede configurar de dos maneras:In other words, when you choose bounded staleness, the "staleness" can be configured in two ways:

  • El número de versiones ( K ) del elementoThe number of versions ( K ) of the item

  • El intervalo de tiempo ( T ) que las lecturas pueden retrasarse con respecto a las escriturasThe time interval ( T ) reads might lag behind the writes

En el caso de una cuenta de una sola región, el valor mínimo de K y T es de 10 operaciones de escritura o de 5 segundos.For a single region account, the minimum value of K and T is 10 write operations or 5 seconds. En el caso de cuentas de varias regiones, el valor mínimo de K y T es de 100 000 operaciones de escritura o de 300 segundos.For multi-region accounts the minimum value of K and T is 100,000 write operations or 300 seconds.

La obsolescencia limitada ofrece un orden global total fuera de la "ventana de obsolescencia".Bounded staleness offers total global order outside of the "staleness window." Cuando un cliente realiza operaciones de lectura en una región que acepta las escrituras, las garantías que proporciona la obsolescencia limitada son idénticas a las garantías por la coherencia fuerte.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. A medida que la ventana de obsolescencia se aproxime al tiempo o la actualización, el más cercano, el servicio limitará las nuevas escrituras para permitir que la replicación se ponga al día y respete la garantía de coherencia.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 de la ventana de obsolescencia, Obsolescencia limitada proporciona las siguientes garantías de coherencia:Inside the staleness window, Bounded Staleness provides the following consistency guarantees:

  • Coherencia para clientes de la misma región para una cuenta con región de escritura única = AltaConsistency for clients in the same region for an account with single write region = Strong

  • Coherencia para clientes de distintas regiones para una cuenta con región de escritura única = De prefijo coherenteConsistency for clients in different regions for an account with single write region = Consistent Prefix

  • Coherencia para clientes que escriben en una sola región para una cuenta con varias regiones de escritura = De prefijo coherenteConsistency for clients writing to a single region for an account with multiple write regions = Consistent Prefix

  • Coherencia para clientes que escriben en diferentes regiones para una cuenta con varias regiones de escritura = FinalConsistency for clients writing to different regions for an account with multiple write regions = Eventual

    Las aplicaciones distribuidas globalmente que esperan bajas latencias de escritura pero que necesitan una garantía de orden global, suelen elegir la obsolescencia limitada.Bounded staleness is frequently chosen by globally distributed applications that expect low write latencies but require total global order guarantee. La obsolescencia limitada es ideal para las aplicaciones que se caracterizan por la colaboración en grupo y el uso compartido, el tablero de cotizaciones, la publicación o suscripción, la puesta en cola, etc. En el gráfico siguiente se ilustra la coherencia de obsolescencia limitada con notas musicales.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. Una vez que los datos se han escrito en la región "Oeste de EE. UU. 2", las regiones "Este de EE. UU. 2" y "Este de Australia" leen el valor escrito según el tiempo de retardo máximo configurado o las operaciones máximas: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:

    Ilustración del nivel de coherencia de obsolescencia limitada

  • Sesión : en una sesión de cliente individual, se garantiza que las lecturas respetan las garantías de prefijo coherente, lecturas monotónicas, escrituras monotónicas, lectura de la escritura y escritura tras las lecturas.Session : 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. Esto da por hecho una sesión de "escritor" individual o el uso compartido del token de sesión para varios escritores.This assumes a single "writer" session or sharing the session token for multiple writers.

Los clientes que están fuera de la sesión que realiza escrituras verán las garantías siguientes:Clients outside of the session performing writes will see the following guarantees:

  • Coherencia para clientes de la misma región para una cuenta con región de escritura única = De prefijo coherenteConsistency for clients in same region for an account with single write region = Consistent Prefix

  • Coherencia para clientes de distintas regiones para una cuenta con región de escritura única = De prefijo coherenteConsistency for clients in different regions for an account with single write region = Consistent Prefix

  • Coherencia para clientes que escriben en una sola región para una cuenta con varias regiones de escritura = De prefijo coherenteConsistency for clients writing to a single region for an account with multiple write regions = Consistent Prefix

  • Coherencia para clientes que escriben en varias regiones para una cuenta con varias regiones de escritura = FinalConsistency for clients writing to multiple regions for a account with multiple write regions = Eventual

    La coherencia de la sesión es el nivel de coherencia más usado para regiones únicas, así como para aplicaciones distribuidas globalmente.Session consistency is the most widely used consistency level for both single region as well as globally distributed applications. Proporciona latencias de escritura, disponibilidad y rendimiento de lectura equiparables a los de la coherencia final, pero también proporciona las garantías de coherencia que satisfacen las necesidades de aplicaciones escritas para funcionar en el contexto de un usuario.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. En el gráfico siguiente se ilustra la coherencia de la sesión con notas musicales.The following graphic illustrates the session consistency with musical notes. El "escritor de Oeste de EE. UU. 2" y el "lector de Oeste de EE. UU. 2" usan la misma sesión (sesión A), por lo que ambos leen los mismos datos al mismo tiempo.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. Sin embargo, la región "Este de Australia" usa la "sesión B", por lo que recibe los datos más tarde pero en el mismo orden en que se escriben.Whereas the "Australia East" region is using "Session B" so, it receives data later but in the same order as the writes.

    Ilustración del nivel de coherencia de sesión

  • De prefijo coherente : Las actualizaciones que se devuelven contienen prefijos para todas las actualizaciones, sin espacios.Consistent prefix : Updates that are returned contain some prefix of all the updates, with no gaps. El nivel de coherencia del prefijo coherente garantiza que las lecturas nunca vean escrituras desordenadas.Consistent prefix consistency level guarantees that reads never see out-of-order writes.

Si se realizan escrituras en el orden A, B, C, un cliente ve A, A,B o A,B,C, pero nunca permutaciones fuera de servicio como A,C o 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. El prefijo coherente proporciona latencias de escritura, disponibilidad y rendimiento de lectura equiparables a los de la coherencia final, pero también proporciona las garantías de orden que se ajustan a las necesidades de escenarios en los que el orden es 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.

A continuación se muestran las garantías de coherencia para Prefijo coherente:Below are the consistency guarantees for Consistent Prefix:

  • Coherencia para clientes de la misma región para una cuenta con región de escritura única = De prefijo coherenteConsistency for clients in same region for an account with single write region = Consistent Prefix
  • Coherencia para clientes de distintas regiones para una cuenta con región de escritura única = De prefijo coherenteConsistency for clients in different regions for an account with single write region = Consistent Prefix
  • Coherencia para clientes que escriben en una sola región para una cuenta con varias regiones de escritura = De prefijo coherenteConsistency for clients writing to a single region for an account with multiple write region = Consistent Prefix
  • Coherencia para clientes que escriben en varias regiones para una cuenta con varias regiones de escritura = FinalConsistency for clients writing to multiple regions for an account with multiple write region = Eventual

En el gráfico siguiente se ilustra la coherencia del prefijo de coherencia con notas musicales.The following graphic illustrates the consistency prefix consistency with musical notes. En todas las regiones, las lecturas no ven nunca las escrituras desordenadas:In all the regions, the reads never see out of order writes:

Ilustración de prefijo coherente

  • Ocasional : No hay ninguna garantía de ordenación para las lecturas.Eventual : There's no ordering guarantee for reads. En ausencia de escrituras adicionales, las réplicas terminarán por converger.In the absence of any further writes, the replicas eventually converge.
    La coherencia final es la forma más débil de coherencia, ya que un cliente puede leer los valores que son más antiguos que los que había leído antes.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. La coherencia final es adecuada cuando la aplicación no requiere ninguna garantía de ordenación.Eventual consistency is ideal where the application does not require any ordering guarantees. Entre los ejemplos se incluye el recuento de retweets, Me gusta o comentarios no encadenados.Examples include count of Retweets, Likes, or non-threaded comments. En el gráfico siguiente se ilustra la coherencia final con notas musicales.The following graphic illustrates the eventual consistency with musical notes.

    Ilustración de coherencia final

Garantías de coherencia en la prácticaConsistency guarantees in practice

En la práctica, es posible que obtenga mayores garantías de coherencia.In practice, you may often get stronger consistency guarantees. Las garantías de coherencia para una operación de lectura se corresponden con la actualización y el orden del estado de la base de datos que solicita.Consistency guarantees for a read operation correspond to the freshness and ordering of the database state that you request. La coherencia de lectura está asociada con la ordenación y la propagación de las operaciones de escritura/actualización.Read-consistency is tied to the ordering and propagation of the write/update operations.

Si no hay ninguna operación de escritura en la base de datos, una operación de lectura con los niveles de coherencia posible , sesión o prefijo coherente es probable que produzca los mismos resultados que una operación de lectura con el nivel de coherencia alto.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.

Si la cuenta de Azure Cosmos está configurada con un nivel de coherencia que no es el de coherencia alta, puede averiguar la probabilidad de que los clientes obtengan lecturas de coherencia alta para sus cargas de trabajo consultando la métrica de obsolescencia limitada de probabilidad (PBS).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. Esta métrica se expone en Azure Portal; para obtener más información, consulte Supervisión de la métrica de obsolescencia limitada de manera probabilística (PBS).This metric is exposed in the Azure portal, to learn more, see Monitor Probabilistically Bounded Staleness (PBS) metric.

La obsolescencia limitada de probabilidad muestra cómo de posible es la coherencia final.Probabilistic bounded staleness shows how eventual is your eventual consistency. Esta métrica proporciona una visión general de la frecuencia con la que puede obtener una coherencia mayor que el nivel de coherencia que tiene configurado actualmente en su cuenta de 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. En otras palabras, puede ver la probabilidad (en milisegundos) de obtener lecturas con coherencia alta para una combinación de regiones de escritura y lectura.In other words, you can see the probability (measured in milliseconds) of getting strongly consistent reads for a combination of write and read regions.

Latencia y niveles de coherenciaConsistency levels and latency

Se garantiza que la latencia de lectura de todos los niveles de coherencia siempre es inferior a 10 milisegundos en el percentil 99.The read latency for all consistency levels is always guaranteed to be less than 10 milliseconds at the 99th percentile. La latencia media de lectura (en el percentil 50) es normalmente de cuatro milisegundos o menos.The average read latency, at the 50th percentile, is typically 4 milliseconds or less.

Se garantiza que la latencia de escritura de todos los niveles de coherencia siempre sea inferior a 10 milisegundos en el percentil 99.The write latency for all consistency levels is always guaranteed to be less than 10 milliseconds at the 99th percentile. La latencia media de escritura (en el percentil 50) es normalmente de cinco milisegundos o menos.The average write latency, at the 50th percentile, is usually 5 milliseconds or less. Las cuentas de Azure Cosmos que abarcan varias regiones y están configuradas con una coherencia alta son una excepción a esta garantía.Azure Cosmos accounts that span several regions and are configured with strong consistency are an exception to this guarantee.

Latencia de escritura y coherencia fuerteWrite latency and Strong consistency

Para las cuentas de Azure Cosmos configuradas con coherencia sólida con más de una región, la latencia de escritura es igual al doble del tiempo de ida y vuelta (RTT) entre cualquiera de las dos regiones más alejadas, más de diez milisegundos en el percentil 99.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. El RTT de red alto entre las regiones se traducirá a una latencia mayor para solicitudes de Cosmos DB, ya que la coherencia fuerte completa una operación solo después de asegurarse de que se ha confirmado en todas las regiones de una cuenta.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 latencia de RTT exacta depende de la distancia a la velocidad de la luz y la topología de red de Azure.The exact RTT latency is a function of speed-of-light distance and the Azure networking topology. La red de Azure no proporciona ningún SLA de latencia para el RTT entre dos regiones de Azure, pero publica las estadísticas de latencia de recorrido de ida y vuelta de red de 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 la cuenta de Azure Cosmos, las latencias de replicación se muestran en Azure Portal.For your Azure Cosmos account, replication latencies are displayed in the Azure portal. Puede usar Azure Portal (vaya a la hoja Métrica, seleccione la pestaña Coherencia) para supervisar las latencias de replicación entre diversas regiones asociadas con su cuenta de 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

La coherencia fuerte para las cuentas con regiones que abarcan más de 5000 millas (8000 kilómetros) se bloquea de forma predeterminada debido a una elevada latencia de escritura.Strong consistency for accounts with regions spanning more than 5000 miles (8000 kilometers) is blocked by default due to high write latency. Para habilitar esta funcionalidad, póngase en contacto con el soporte técnico.To enable this capability please contact support.

Rendimiento y niveles de coherenciaConsistency levels and throughput

  • En el caso de la obsolescencia fuerte y limitada, las lecturas se realizan en dos réplicas en un conjunto de cuatro réplicas (cuórum minoritario) para proporcionar garantías de coherencia.For strong and bounded staleness, reads are done against two replicas in a four replica set (minority quorum) to provide consistency guarantees. Los niveles de sesión, prefijo coherente y posible realizan lecturas de réplica única.Session, consistent prefix and eventual do single replica reads. El resultado es que, para el mismo número de unidades de solicitud, el rendimiento de lectura para la obsolescencia fuerte y limitada es la mitad de los demás niveles de coherencia.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 un tipo determinado de operación de escritura (por ejemplo, Insert, Replace, Upsert o Delete), el rendimiento de escritura de las unidades de solicitud es idéntico para todos los niveles de coherencia.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.

Nivel de coherenciaConsistency Level Lecturas de cuórumQuorum Reads Escrituras de cuórumQuorum Writes
FuerteStrong Minoría localLocal Minority Mayoría globalGlobal Majority
Obsolescencia limitadaBounded Staleness Minoría localLocal Minority Mayoría localLocal Majority
De sesiónSession Réplica única (con token de sesión)Single Replica (using session token) Mayoría localLocal Majority
De prefijo coherenteConsistent Prefix Réplica únicaSingle Replica Mayoría localLocal Majority
PosibleEventual Réplica únicaSingle Replica Mayoría localLocal Majority

Nota

El costo de RU/s para lecturas minoritarias locales es el doble que el de los niveles de coherencia más débiles porque las lecturas se realizan en dos réplicas para proporcionar garantías de coherencia para la obsolescencia alta y 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.

Durabilidad de los datos y niveles de coherenciaConsistency levels and data durability

En un entorno de base de datos distribuida de forma global, existe una relación directa entre el nivel de coherencia y la durabilidad de los datos se produce una interrupción en toda la región.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. A medida que desarrolle el plan de continuidad empresarial, tendrá que saber el tiempo máximo aceptable para que la aplicación se recupere por completo tras un evento de interrupción.As you develop your business continuity plan, you need to understand the maximum acceptable time before the application fully recovers after a disruptive event. El tiempo necesario para que una aplicación se recupere totalmente se conoce como objetivo de tiempo de recuperación ( RTO ).The time required for an application to fully recover is known as recovery time objective ( RTO ). También debe conocer el período máximo de actualizaciones de datos recientes que la aplicación puede tolerar perder al recuperarse después de un evento de interrupción.You also need to understand the maximum period of recent data updates the application can tolerate losing when recovering after a disruptive event. El período de tiempo de las actualizaciones que se puede permitir perder se conoce como objetivo de punto de recuperación ( RPO ).The time period of updates that you might afford to lose is known as recovery point objective ( RPO ).

En la tabla siguiente se define la relación entre el modelo de coherencia y la durabilidad de los datos si se produce una interrupción en toda la región.The table below defines the relationship between consistency model and data durability in the presence of a region wide outage. Es importante tener en cuenta que, en un sistema distribuido, aunque la coherencia sea alta, no es posible tener una base de datos distribuida con un RPO y un RTO de cero debido al 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 CAP Theorem.

RegionesRegion(s) Modo de replicaciónReplication mode Nivel de coherenciaConsistency level RPORPO RTORTO
11 Una o varias regiones de escrituraSingle or Multiple write regions Cualquier nivel de coherenciaAny Consistency Level < 240 minutos< 240 Minutes <1 semana<1 Week
>1>1 Región de escritura únicaSingle write region Sesión, prefijo coherente, eventualSession, Consistent Prefix, Eventual < 15 minutos< 15 minutes < 15 minutos< 15 minutes
>1>1 Una región de escrituraSingle write region De obsolescencia entrelazadaBounded Staleness K & TK & T < 15 minutos< 15 minutes
>1>1 Una región de escrituraSingle write region AltaStrong 00 < 15 minutos< 15 minutes
>1>1 Varias regiones de escrituraMultiple write regions Sesión, prefijo coherente, eventualSession, Consistent Prefix, Eventual < 15 minutos< 15 minutes 00
>1>1 Varias regiones de escrituraMultiple write regions De obsolescencia entrelazadaBounded Staleness K & TK & T 00

K = número de versiones "K" (es decir, actualizaciones) de un elemento.K = The number of "K" versions (i.e., updates) of an item.

T = intervalo de tiempo "T" desde la última actualización.T = The time interval "T" since the last update.

En el caso de una cuenta de una sola región, el valor mínimo de K y T es de 10 operaciones de escritura o de 5 segundos.For a single region account, the minimum value of K and T is 10 write operations or 5 seconds. En el caso de cuentas de varias regiones, el valor mínimo de K y T es de 100 000 operaciones de escritura o de 300 segundos.For multi-region accounts the minimum value of K and T is 100,000 write operations or 300 seconds. Esto define el RPO mínimo para los datos cuando se usa la obsolescencia limitada.This defines the minimum RPO for data when using Bounded Staleness.

Coherencia fuerte y varias regiones de escrituraStrong consistency and multiple write regions

Las cuentas de Cosmos configuradas con varias regiones de escritura no se pueden configurar para lograr una coherencia fuerte, ya que no es posible que un sistema distribuido proporcione un RPO de cero y un RTO de cero.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. Además, no existe ninguna ventaja en la latencia de escritura por usar la coherencia fuerte con varias regiones de escritura porque una escritura en cualquier región debe replicarse y confirmarse en todas las regiones configuradas dentro de la cuenta.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. Esto produce la misma latencia de escritura que una cuenta con una sola región de escritura.This results in the same write latency as a single write region account.

Lecturas adicionalesAdditional reading

Para más información sobre los conceptos de coherencia, lea los artículos siguientes:To learn more about consistency concepts, read the following articles:

Pasos siguientesNext steps

Para más información sobre los niveles de coherencia de Azure Cosmos DB, lea los artículos siguientes:To learn more about consistency levels in Azure Cosmos DB, read the following articles: