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 commercieel verkrijgbaar gedistribueerde databases stellen ontwikkelaars om te kiezen tussen de twee extreme consistentiemodellen: 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. De verwerkingen of het model sterke consistentie is de standaard gold van gegevens programmeren.The linearizability or the strong consistency model is the gold standard of data programmability. Maar een steile prijs van hogere latentie (in onveranderlijke) toegevoegd en verminderde beschikbaarheid (bij storingen).But it adds a steep price of higher latency (in steady state) and reduced availability (during failures). Aan de andere kant uiteindelijke consistentie biedt een hogere beschikbaarheid en betere prestaties, maar is moeilijk te programmeren van toepassingen.On the other hand, eventual consistency offers higher availability and better performance, but is 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 zijn aan het einde, maar er zijn veel keuzes in consistentie langs het spectrum krijgen.Strong consistency and eventual consistency are at the ends, but there are many consistency choices along the spectrum. Ontwikkelaars kunnen deze opties gebruiken om te maken van nauwkeurige keuzes en gedetailleerde compromissen met betrekking tot hoge beschikbaarheid of prestaties.Developers can use these options to make precise choices and granular tradeoffs with respect to high availability or 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. Van sterk naar zwak, de modellen zijn sterk, gebonden veroudering, sessie, consistent voorvoegsel en mogelijk.From strongest to weakest, the models are strong, bounded staleness, session, consistent prefix, and eventual. De modellen zijn goed gedefinieerde en intuïtieve.The models are well-defined and intuitive. Ze kunnen worden gebruikt voor specifieke echte scenario's.They can be used for specific real-world scenarios. Elk model biedt zorgen voor beschikbaarheid en prestaties van een balans en wordt ondersteund door uitgebreide Sla's.Each model provides availability and performance tradeoffs and is backed by comprehensive SLAs. De volgende afbeelding ziet u verschillende consistentieniveaus als een breed spectrum aan mogelijkheden.The following image shows different consistency levels as a spectrum.

Consistentie als een breed spectrum aan mogelijkheden

De consistentieniveaus zijn regioneutrale.The consistency levels are region-agnostic. Het consistentieniveau van de van uw Azure Cosmos-account wordt gegarandeerd voor alle leesbewerkingen, ongeacht de regio van waaruit de lees- en schrijfbewerkingen plaatsvindt, het aantal regio's die zijn gekoppeld aan uw Azure Cosmos-account, of dat uw account is geconfigureerd met een één of meerdere regio's voor schrijven.The consistency level of your Azure Cosmos account is guaranteed for all read 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 standaardconsistentieniveau geconfigureerd in uw account is van toepassing op alle Azure Cosmos DB-databases en containers onder dat account.The default consistency level configured on your account applies to all Azure Cosmos DB 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 precieze definities van de vijf consistentieniveaus in Azure Cosmos DB met behulp van de TLA + specificatietaal vindt u in de azure-cosmos-tla GitHub-opslagplaats.The precise definitions of the five consistency levels in Azure Cosmos DB by 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:

  • Sterke: sterke consistentie biedt een verwerkingen garanderen.Strong: Strong consistency offers a linearizability guarantee. 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 leesbewerkingen gegarandeerd de garantie consistent voorvoegsel in acht neemt.Bounded staleness: The reads are guaranteed to honor the consistent-prefix guarantee. De leesbewerkingen kunnen volgen op schrijfbewerkingen door maximaal 'K'-versies (dat wil zeggen "updates") van een artikel of door te tijdsinterval "t".The reads might lag behind writes by at most "K" versions (that is "updates") of an item or by "t" time interval. Als u gebonden veroudering kiest, kan de "veroudering' op twee manieren worden geconfigureerd:When you choose bounded staleness, the "staleness" can be configured in two ways:

    • Het aantal versies (kB) van het itemThe number of versions (K) of the item
    • Het tijdsinterval (t) waarmee de leesbewerkingen op schrijfbewerkingen volgen kunnenThe 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 is dezelfde semantiek als degene die worden aangeboden door gebonden veroudering.Strong consistency has the same semantics as the ones 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 leesbewerkingen binnen een regio die schrijfbewerkingen accepteert uitvoert, zijn de garanties geboden door consistentie voor gebonden veroudering identiek zijn aan de garanties met de krachtige 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 with the strong consistency.

  • Sessie: de leesbewerkingen gegarandeerd te voldoen aan de consistent voorvoegsel (uitgaande van een sessie voor één 'auteur'), monotone leesbewerkingen, monotone schrijfbewerkingen, read-your-writes en write-follows-reads garandeert.Session: The 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. Sessieconsistentie is afgestemd op een clientsessie.Session consistency is scoped to a client session.

  • Consistent voorvoegsel: Updates die worden geretourneerd, een prefix van alle updates, zonder hiaten bevatten.Consistent prefix: Updates that are returned contain some prefix of all the updates, with no gaps. Consistent voorvoegsel wordt gegarandeerd dat leesbewerkingen nooit out volgorde schrijfbewerkingen te zien.Consistent prefix guarantees that reads never see out-of-order writes.

  • Uiteindelijke: Er is geen garantie volgorde voor leesbewerkingen.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 zich achter met een score van 2 tot en met 5.The visitors are behind with a score of 2 to 5.

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 DB-container bevat de bezoekers en thuis team totalen worden uitgevoerd.An Azure Cosmos DB container holds the visitors' and home team run totals. 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 ScoresScores
SterkeStrong 2-52-5
Gebonden verouderingBounded staleness Scores die maximaal één inning verouderd: 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 iedereen behalve de 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 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 en 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: