Livelli di coerenza e API di Azure Cosmos DBConsistency levels and Azure Cosmos DB APIs

Azure Cosmos DB fornisce il supporto nativo per le API compatibili con il protocollo wire per i database più diffusi.Azure Cosmos DB provides native support for wire protocol-compatible APIs for popular databases. Sono inclusi MongoDB, Apache Cassandra, Gremlin e archiviazione tabelle di Azure.These include MongoDB, Apache Cassandra, Gremlin, and Azure Table storage. Questi database non offrono modelli di coerenza definiti in modo accurato o garanzie basate sul contratto di contratto per i livelli di coerenza.These databases do not offer precisely defined consistency models or SLA-backed guarantees for the consistency levels. In genere forniscono solo un subset dei cinque modelli di coerenza offerti da Cosmos DB.They typically provide only a subset of the five consistency models offered by Azure Cosmos DB.

Quando si usa l'API SQL, l'API Gremlin e API Tabella, viene usato il livello di coerenza predefinito configurato nell'account Azure Cosmos.When using SQL API, Gremlin API, and Table API, the default consistency level configured on the Azure Cosmos account is used.

Quando si usa API Cassandra o l'API Azure Cosmos DB per MongoDB, le applicazioni ottengono un set completo di livelli di coerenza offerti rispettivamente da Apache Cassandra e MongoDB, con garanzie di coerenza e durabilità ancora più solide.When using Cassandra API or Azure Cosmos DB’s API for MongoDB, applications get a full set of consistency levels offered by Apache Cassandra and MongoDB, respectively, with even stronger consistency and durability guarantees. Questo documento illustra i livelli di coerenza Azure Cosmos DB corrispondenti per i livelli di coerenza Apache Cassandra e MongoDB.This document shows the corresponding Azure Cosmos DB consistency levels for Apache Cassandra and MongoDB consistency levels.

Eseguire il mapping tra i livelli di coerenza di Azure Cosmos DB e Apache CassandraMapping between Apache Cassandra and Azure Cosmos DB consistency levels

Diversamente da Azure Cosmos DB, Apache Cassandra non fornisce in modo nativo garanzie di coerenza definite in modo nativo.Unlike Azure Cosmos DB, Apache Cassandra does not natively provide precisely defined consistency guarantees. Apache Cassandra fornisce invece un livello di coerenza di scrittura e un livello di coerenza di lettura per consentire i compromessi di disponibilità elevata, coerenza e latenza.Instead, Apache Cassandra provides a write consistency level and a read consistency level, to enable the high availability, consistency, and latency tradeoffs. Quando si usa API Cassandra di Azure Cosmos DB:When using Azure Cosmos DB’s Cassandra API:

  • Il livello di coerenza di scrittura di Apache Cassandra viene mappato al livello di coerenza predefinito configurato nell'account Azure Cosmos.The write consistency level of Apache Cassandra is mapped to the default consistency level configured on your Azure Cosmos account. La coerenza per un'operazione di scrittura (CL) non può essere modificata in base alle singole richieste.Consistency for a write operation (CL) can't be changed on a per-request basis.

  • Azure Cosmos DB eseguirà il mapping dinamico del livello di coerenza di lettura specificato dal driver del client Cassandra a uno dei livelli di coerenza Azure Cosmos DB configurati in modo dinamico in una richiesta di lettura.Azure Cosmos DB will dynamically map the read consistency level specified by the Cassandra client driver to one of the Azure Cosmos DB consistency levels configured dynamically on a read request.

La tabella seguente illustra come viene eseguito il mapping dei livelli di coerenza di Cassandra nativi ai livelli di coerenza del Azure Cosmos DB quando si usa API Cassandra:The following table illustrates how the native Cassandra consistency levels are mapped to the Azure Cosmos DB’s consistency levels when using Cassandra API:

Mapping del modello di coerenza Cassandra

Mapping tra MongoDB e livelli di coerenza Azure Cosmos DBMapping between MongoDB and Azure Cosmos DB consistency levels

A differenza Azure Cosmos DB, MongoDB nativo non fornisce garanzie di coerenza definite in modo accurato.Unlike Azure Cosmos DB, the native MongoDB does not provide precisely defined consistency guarantees. Al contrario, MongoDB nativo consente agli utenti di configurare le garanzie di coerenza seguenti: un problema di scrittura, un problema di lettura e la direttiva Master per indirizzare le operazioni di lettura alle repliche primarie o secondarie per ottenere il livello di coerenza desiderato.Instead, native MongoDB allows users to configure the following consistency guarantees: a write concern, a read concern, and the isMaster directive - to direct the read operations to either primary or secondary replicas to achieve the desired consistency level.

Quando si usa l'API di Azure Cosmos DB per MongoDB, il Driver MongoDB considera l'area di scrittura come replica primaria e tutte le altre aree sono in lettura replica.When using Azure Cosmos DB’s API for MongoDB, the MongoDB driver treats your write region as the primary replica and all other regions are read replica. È possibile scegliere l'area associata all'account Azure Cosmos come replica primaria.You can choose which region associated with your Azure Cosmos account as a primary replica.

Quando si usa l'API di Azure Cosmos DB per MongoDB:While using Azure Cosmos DB’s API for MongoDB:

  • Il problema di scrittura viene mappato al livello di coerenza predefinito configurato nell'account Azure Cosmos.The write concern is mapped to the default consistency level configured on your Azure Cosmos account.

  • Azure Cosmos DB eseguirà il mapping dinamico del problema di lettura specificato dal driver client MongoDB a uno dei livelli di coerenza Azure Cosmos DB configurati in modo dinamico in una richiesta di lettura.Azure Cosmos DB will dynamically map the read concern specified by the MongoDB client driver to one of the Azure Cosmos DB consistency levels that is configured dynamically on a read request.

  • È possibile aggiungere annotazioni a un'area specifica associata all'account Azure Cosmos come "Master" rendendo la regione come prima area scrivibile.You can annotate a specific region associated with your Azure Cosmos account as "Master" by making the region as the first writable region.

La tabella seguente illustra come viene eseguito il mapping dei problemi di scrittura/lettura MongoDB nativi ai livelli di coerenza di Azure Cosmos quando si usa l'API di Azure Cosmos DB per MongoDB:The following table illustrates how the native MongoDB write/read concerns are mapped to the Azure Cosmos consistency levels when using Azure Cosmos DB’s API for MongoDB:

Mapping del modello di coerenza MongoDB

Passaggi successiviNext steps

Leggere altre informazioni sui livelli di coerenza e la compatibilità tra le API di Azure Cosmos DB e le API open source.Read more about consistency levels and compatibility between Azure Cosmos DB APIs with the open-source APIs. Vedere gli articoli seguenti:See the following articles: