Consistentieniveaus in Azure Cosmos DBConsistency levels in Azure Cosmos DB

Gedistribueerde databases die afhankelijk van de replicatie voor hoge beschikbaarheid, lage latentie, of beide zijn, moeten het fundamentele verschil tussen het lezen van consistentie en beschikbaarheid, latentie en doorvoer.Distributed databases that rely on replication for high availability, low latency, or both, make the fundamental tradeoff between the read consistency vs. availability, latency, and throughput. De meeste commerciële beschik bare gedistribueerde data bases vragen ontwikkel aars om te kiezen tussen de twee uiterst consistente consistentie modellen: sterke consistentie en uiteindelijke consistentie.Most commercially available distributed databases ask developers to choose between the two extreme consistency models: strong consistency and eventual consistency. Het linearizability of het sterke consistentie model is de Gold Standard van data Programmable.The linearizability or the strong consistency model is the gold standard of data programmability. Maar Hiermee wordt een prijs van hogere latentie (in stabiele toestand) en een lagere Beschik baarheid (tijdens fouten) toegevoegd.But it adds a price of higher latency (in steady state) and reduced availability (during failures). Aan de andere kant bieden uiteindelijke consistentie een hogere Beschik baarheid en betere prestaties, maar maakt het Program meren van toepassingen lastig.On the other hand, eventual consistency offers higher availability and better performance, but makes it hard to program applications.

Azure Cosmos DB nadert de consistentie van gegevens als een spectrum van de opties in plaats van twee extreme.Azure Cosmos DB approaches data consistency as a spectrum of choices instead of two extremes. Sterke consistentie en uiteindelijke consistentie bevinden zich aan de uiteinden van het spectrum, maar er zijn veel consistentie mogelijkheden in het spectrum.Strong consistency and eventual consistency are at the ends of the spectrum, but there are many consistency choices along the spectrum. Ontwikkel aars kunnen deze opties gebruiken om nauw keurige keuzes en gedetailleerde afwegingen te maken met betrekking tot hoge Beschik baarheid en prestaties.Developers can use these options to make precise choices and granular tradeoffs with respect to high availability and performance.

Met Azure Cosmos DB kunnen ontwikkelaars kiezen uit vijf duidelijk gedefinieerde consistentiemodellen op het spectrum consistentie.With Azure Cosmos DB, developers can choose from five well-defined consistency models on the consistency spectrum. Uit het oogpunt van het sterkst om minder goed te zijn, bevatten de modellen sterke, gebonden veroudering, sessie, consistent voor voegselen uiteindelijke consistentie.From strongest to more relaxed, the models include strong, bounded staleness, session, consistent prefix, and eventual consistency. De modellen zijn goed gedefinieerd en intuïtief en kunnen worden gebruikt voor specifieke praktijk scenario's.The models are well-defined and intuitive and can be used for specific real-world scenarios. Elk model biedt Beschik baarheid en prestatie afwegingen en wordt ondersteund door de sla's.Each model provides availability and performance tradeoffs and is backed by the SLAs. In de volgende afbeelding ziet u de verschillende consistentie niveaus als een spectrum.The following image shows the different consistency levels as a spectrum.

Consistentie als een breed spectrum aan mogelijkheden

De consistentie niveaus zijn neutraal en worden gegarandeerd voor alle bewerkingen, ongeacht de regio van waaruit de lees-en schrijf bewerkingen worden uitgevoerd, het aantal regio's dat aan uw Azure Cosmos-account is gekoppeld, of of uw account is geconfigureerd met één of meerdere schrijf regio's.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.

Bereik van het lezen van consistentieScope of the read consistency

Lezen van consistentie van toepassing op een enkele leesbewerking binnen het bereik van binnen het bereik van een partitiesleutel of een logische partitie.Read consistency applies to a single read operation scoped within a partition-key range or a logical partition. De leesbewerking kan worden uitgegeven door een externe client of een opgeslagen procedure.The read operation can be issued by a remote client or a stored procedure.

Het standaardconsistentieniveau configurerenConfigure the default consistency level

U kunt het standaardconsistentieniveau configureren op uw Azure Cosmos-account op elk gewenst moment.You can configure the default consistency level on your Azure Cosmos account at any time. Het standaard consistentie niveau dat voor uw account is geconfigureerd, is van toepassing op alle Azure Cosmos-data bases en containers onder dat account.The default consistency level configured on your account applies to all Azure Cosmos databases and containers under that account. Alle leesbewerkingen en query's die zijn uitgegeven voor een container of een database wordt de opgegeven consistentieniveau standaard gebruikt.All reads and queries issued against a container or a database use the specified consistency level by default. Zie voor meer informatie over het het standaardconsistentieniveau configureren.To learn more, see how to configure the default consistency level.

Garanties die zijn gekoppeld aan consistentieniveausGuarantees associated with consistency levels

De uitgebreide Sla's geleverd door Azure Cosmos DB gegarandeerd dat 100 procent van de leesaanvragen voldoet aan de consistentiegarantie voor elk consistentieniveau die u kiest.The comprehensive SLAs provided by Azure Cosmos DB guarantee that 100 percent of read requests meet the consistency guarantee for any consistency level you choose. Een leesaanvraag voldoet aan de SLA van de consistentie als alle de consistentiegarantie die zijn gekoppeld aan het consistentieniveau is voldaan.A read request meets the consistency SLA if all the consistency guarantees associated with the consistency level are satisfied. De exacte definities van de vijf consistentie niveaus in Azure Cosmos DB met behulp van de TLA + specificatie taal zijn opgenomen in de Azure-Cosmos-TLA github opslag plaats.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.

De semantiek van de vijf consistentieniveaus worden hier beschreven:The semantics of the five consistency levels are described here:

  • Sterk: Sterke consistentie biedt een linearizability-garantie.Strong: Strong consistency offers a linearizability guarantee. Linearizability verwijst naar de gelijktijdigheid van aanvragen.Linearizability refers to serving requests concurrently. De leesbewerkingen gegarandeerd de meest recente doorgevoerde versie van een item geretourneerd.The reads are guaranteed to return the most recent committed version of an item. Een client ziet nooit het terugschrijven van een niet-doorgevoerde of gedeeltelijke.A client never sees an uncommitted or partial write. Gebruikers zijn altijd gegarandeerd de meest recente toegezegde schrijven.Users are always guaranteed to read the latest committed write.

  • Gebonden veroudering: De Lees bewerkingen worden gegarandeerd om te voldoen aan de consistentie van de voor voegsels.Bounded staleness: The reads are guaranteed to honor the consistent-prefix guarantee. De Lees bewerkingen kunnen vertraging oplopen bij schrijf bewerkingen door de meeste "K" -versies (bijvoorbeeld ' updates ') van een item of op een T -interval.The reads might lag behind writes by at most "K" versions (i.e., "updates") of an item or by "T" time interval. Met andere woorden, wanneer u de gebonden veroudering kiest, kan de ' verouderd ' op twee manieren worden geconfigureerd:In other words, when you choose bounded staleness, the "staleness" can be configured in two ways:

    • Het aantal versies (K) van het itemThe number of versions (K) of the item
    • Het tijds interval (T) waarmee de Lees bewerkingen kunnen worden vertraagd achter de schrijf bewerkingenThe time interval (T) by which the reads might lag behind the writes

    Gebonden veroudering aanbiedingen totale globale volgorde, behalve binnen de "veroudering venster."Bounded staleness offers total global order except within the "staleness window." De monotone lezen garanties bestaan binnen een regio, zowel binnen als buiten het venster veroudering.The monotonic read guarantees exist within a region both inside and outside the staleness window. Sterke consistentie heeft dezelfde semantiek als die van de gebonden veroudering.Strong consistency has the same semantics as the one offered by bounded staleness. Het venster veroudering is gelijk aan nul.The staleness window is equal to zero. Gebonden veroudering wordt ook wel tijd uitgesteld verwerkingen genoemd.Bounded staleness is also referred to as time-delayed linearizability. Wanneer een client lees bewerkingen uitvoert binnen een regio die schrijf acties accepteert, zijn de garanties die worden geboden door de gebonden verouderde consistentie, identiek aan die garanties van de sterke consistentie.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.

  • Sessie: Binnen één client sessie Lees bewerkingen wordt gegarandeerd het consistente voor voegsel (uitgaande van één ' schrijver ' sessie), monotone Lees bewerkingen, monotone schrijf bewerkingen, lees-uw-schrijf bewerkingen en lees-en schrijf bewerkingen.Session: Within a single client session reads are guaranteed to honor the consistent-prefix (assuming a single “writer” session), monotonic reads, monotonic writes, read-your-writes, and write-follows-reads guarantees. Clients buiten de sessie die schrijf bewerkingen uitvoeren, zien uiteindelijke consistentie.Clients outside of the session performing writes will see eventual consistency.

  • Consistent voor voegsel: Updates die worden geretourneerd, bevatten een voor voegsel van alle updates, zonder onderbrekingen.Consistent prefix: Updates that are returned contain some prefix of all the updates, with no gaps. Consistent consistentie niveau van het voor voegsel zorgt ervoor dat lees bewerkingen die nooit worden uitgevoerd, niet worden weer gegeven.Consistent prefix consistency level guarantees that reads never see out-of-order writes.

  • Uiteindelijk: Er is geen garantie voor lees bewerkingen.Eventual: There's no ordering guarantee for reads. De replica's worden in de afwezigheid van geen schrijfbewerkingen meer kunnen uiteindelijk geconvergeerd.In the absence of any further writes, the replicas eventually converge.

Consistentieniveaus uitgelegd honkbalConsistency levels explained through baseball

We gaan een baseball game scenario als voorbeeld.Let's take a baseball game scenario as an example. Stel dat een reeks schrijfbewerkingen die staan voor de score van een game baseball.Imagine a sequence of writes that represent the score from a baseball game. De regel inning door inning score wordt beschreven in de gerepliceerd gegevensconsistentie honkbal papier.The inning-by-inning line score is described in the Replicated data consistency through baseball paper. Dit spel hypothetische baseball is momenteel in het midden van de zevende inning.This hypothetical baseball game is currently in the middle of the seventh inning. Het is de zevende--inning stretch.It's the seventh-inning stretch. De bezoekers bevinden zich achter met een Score van 2 tot 5, zoals hieronder wordt weer gegeven:The visitors are behind with a score of 2 to 5 as shown below:

11 22 33 44 55 66 77 88 99 Wordt uitgevoerdRuns
BezoekersVisitors 00 00 11 00 11 00 00 22
startpaginaHome 11 00 11 11 00 22 55

Een Azure Cosmos-container bevat de uitvoerings totalen voor de bezoekers en de thuis teams.An Azure Cosmos container holds the run totals for the visitors and home teams. Terwijl het spel uitgevoerd wordt, lezen verschillende garanties kunnen leiden tot clients verschillende scores lezen.While the game is in progress, different read guarantees might result in clients reading different scores. De volgende tabel bevat de volledige set van scores die door het lezen van de bezoekers en thuis scores met elk van de vijf consistentiegarantie kan worden geretourneerd.The following table lists the complete set of scores that might be returned by reading the visitors' and home scores with each of the five consistency guarantees. De bezoekers score wordt eerst weergegeven.The visitors' score is listed first. Verschillende mogelijke geretourneerde waarden worden gescheiden door komma's.Different possible return values are separated by commas.

ConsistentieniveauConsistency level Scores (bezoekers, Home)Scores (Visitors, Home)
SterkeStrong 2-52-5
Gebonden verouderingBounded staleness Scores die Maxi maal één inning verouderd zijn: 2-3, 2-4, 2-5Scores that are at most one inning out of date: 2-3, 2-4, 2-5
SessieSession
  • Voor de schrijver: 2-5For the writer: 2-5
  • Voor iemand anders dan de schrijver: 0-0, 0-1, 0-2, 0-3, 0-4, 0-5, 1-0, 1-1, 1-2, 1-3, 1-4, 1-5, 2-0, 2-1, 2-2, 2 en 3, 2-4, 2-5For anyone other than the writer: 0-0, 0-1, 0-2, 0-3, 0-4, 0-5, 1-0, 1-1, 1-2, 1-3, 1-4, 1-5, 2-0, 2-1, 2-2, 2-3, 2-4, 2-5
  • Na het lezen van 1-3: 1-3, 1-4, 1-5, 2-3, 2-4, 2-5After reading 1-3: 1-3, 1-4, 1-5, 2-3, 2-4, 2-5
Consistent voorvoegselConsistent prefix 0-0, 0-1, 1-1, 1-2, 1-3, 2 en 3, 2-4, 2-50-0, 0-1, 1-1, 1-2, 1-3, 2-3, 2-4, 2-5
UiteindelijkeEventual 0-0, 0-1, 0-2, 0-3, 0-4, 0-5, 1-0, 1-1, 1-2, 1-3, 1-4, 1-5, 2-0, 2-1, 2-2, 2 en 3, 2-4, 2-50-0, 0-1, 0-2, 0-3, 0-4, 0-5, 1-0, 1-1, 1-2, 1-3, 1-4, 1-5, 2-0, 2-1, 2-2, 2-3, 2-4, 2-5

Meer lezenAdditional reading

Lees voor meer informatie over concepten van de consistentie van de volgende artikelen:To learn more about consistency concepts, read the following articles:

Volgende stappenNext steps

Lees de volgende artikelen voor meer informatie over consistentieniveaus in Azure Cosmos DB:To learn more about consistency levels in Azure Cosmos DB, read the following articles: