Poziomy spójności i interfejsy API usługi Azure Cosmos DBConsistency levels and Azure Cosmos DB APIs

Azure Cosmos DB zapewnia natywną obsługę interfejsów API zgodnych z protokołem przewodowym dla popularnych baz danych.Azure Cosmos DB provides native support for wire protocol-compatible APIs for popular databases. Obejmują one MongoDB, Apache Cassandra, Gremlin i Azure Table Storage.These include MongoDB, Apache Cassandra, Gremlin, and Azure Table storage. Te bazy danych nie oferują precyzyjnie zdefiniowanych modeli spójności ani gwarancji objętych umową SLA dla poziomów spójności.These databases do not offer precisely defined consistency models or SLA-backed guarantees for the consistency levels. Zwykle zapewniają tylko podzestaw pięciu modeli spójności oferowanych przez Azure Cosmos DB.They typically provide only a subset of the five consistency models offered by Azure Cosmos DB.

W przypadku korzystania z interfejsu API SQL, interfejsu API Gremlin i interfejs API tabel, używany jest domyślny poziom spójności skonfigurowany na koncie usługi Azure Cosmos.When using SQL API, Gremlin API, and Table API, the default consistency level configured on the Azure Cosmos account is used.

W przypadku korzystania z interfejsu API interfejs API Cassandra lub Azure Cosmos DB dla MongoDB aplikacje uzyskają pełny zestaw poziomów spójności oferowanych przez Apache Cassandra i MongoDB, a nawet silniejsze gwarancje spójności i trwałości.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. W tym dokumencie przedstawiono odpowiednie Azure Cosmos DB poziomów spójności dla poziomów spójności Apache Cassandra i MongoDB.This document shows the corresponding Azure Cosmos DB consistency levels for Apache Cassandra and MongoDB consistency levels.

Mapowanie między Cassandra Apache i Azure Cosmos DB poziomów spójnościMapping between Apache Cassandra and Azure Cosmos DB consistency levels

W przeciwieństwie do Azure Cosmos DB technologia Apache Cassandra nie zapewnia natywnej dokładnej kontroli spójności.Unlike Azure Cosmos DB, Apache Cassandra does not natively provide precisely defined consistency guarantees. Zamiast tego Apache Cassandra zapewnia poziom spójności zapisu i poziom spójności odczytu, aby zapewnić wysoką dostępność, spójność i wady opóźnienia.Instead, Apache Cassandra provides a write consistency level and a read consistency level, to enable the high availability, consistency, and latency tradeoffs. W przypadku korzystania z interfejs API Cassandra Azure Cosmos DB:When using Azure Cosmos DB’s Cassandra API:

  • Poziom spójności zapisu usługi Apache Cassandra jest mapowany na domyślny poziom spójności skonfigurowany na koncie usługi Azure Cosmos.The write consistency level of Apache Cassandra is mapped to the default consistency level configured on your Azure Cosmos account.

  • Azure Cosmos DB dynamicznie mapuje poziom spójności odczytu określony przez sterownik klienta Cassandra na jeden z Azure Cosmos DB poziomów spójności skonfigurowanych dynamicznie na żądanie odczytu.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.

W poniższej tabeli przedstawiono, jak natywne poziomy spójności Cassandra są mapowane na poziomy spójności Azure Cosmos DB podczas korzystania interfejs 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:

mapowanie modelu spójności CassandraCassandra consistency model mapping

Mapowanie między MongoDB i Azure Cosmos DB poziomów spójnościMapping between MongoDB and Azure Cosmos DB consistency levels

W przeciwieństwie do Azure Cosmos DB, natywny MongoDB nie zapewnia precyzyjnie zdefiniowanych gwarancji spójności.Unlike Azure Cosmos DB, the native MongoDB does not provide precisely defined consistency guarantees. Zamiast tego natywny MongoDB umożliwia użytkownikom skonfigurowanie następujących gwarancji spójności: uwagi dotyczące zapisu, Odczyt i dyrektywa IsMaster — aby skierować operacje odczytu do replik podstawowych lub pomocniczych w celu osiągnięcia żądanego poziomu spójności.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.

W przypadku korzystania z interfejsu API Azure Cosmos DB dla MongoDB, sterownik MongoDB traktuje region zapisu jako replikę podstawową i wszystkie pozostałe regiony są odczytywane z repliki.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. Możesz wybrać region skojarzony z kontem usługi Azure Cosmos jako replikę podstawową.You can choose which region associated with your Azure Cosmos account as a primary replica.

Podczas korzystania z interfejsu API Azure Cosmos DB dla MongoDB:While using Azure Cosmos DB’s API for MongoDB:

  • Problem dotyczący zapisu jest mapowany na domyślny poziom spójności skonfigurowany na koncie usługi Azure Cosmos.The write concern is mapped to the default consistency level configured on your Azure Cosmos account.

  • Azure Cosmos DB dynamicznie mapuje problem odczytu określony przez sterownik klienta MongoDB na jeden z Azure Cosmos DB poziomów spójności skonfigurowanych dynamicznie na żądanie odczytu.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.

  • Można dodać adnotacje do określonego regionu skojarzonego z kontem usługi Azure Cosmos jako "Master", tworząc region jako pierwszy zapisywalny region.You can annotate a specific region associated with your Azure Cosmos account as "Master" by making the region as the first writable region.

W poniższej tabeli pokazano, w jaki sposób natywne zagadnienia dotyczące zapisu/odczytu MongoDB są mapowane na poziomy spójności usługi Azure Cosmos w przypadku korzystania z interfejsu API Azure Cosmos DB dla 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:

mapowanie modelu spójności MongoDBMongoDB consistency model mapping

Następne krokiNext steps

Przeczytaj więcej na temat poziomów spójności i zgodności między interfejsami API Azure Cosmos DB przy użyciu interfejsów API Open Source.Read more about consistency levels and compatibility between Azure Cosmos DB APIs with the open-source APIs. Zobacz następujące artykuły:See the following articles: