A megfelelő konzisztenciaszint kiválasztása

Befejeződött

A konzisztenciamodellek mindegyike adott valós forgatókönyvekhez használható. Mindegyik pontos rendelkezésre állást és teljesítménybeli kompromisszumot biztosít, és átfogó SLA-k is alátámasztják. Az alábbi egyszerű szempontok számos gyakori forgatókönyvben segítenek a helyes választásban.

Az alapértelmezett konzisztenciaszint beállítása

Az azure Cosmos DB-fiók alapértelmezett konzisztenciaszintje bármikor konfigurálható. A fiókon konfigurált alapértelmezett konzisztenciaszint az adott fiókban lévő összes Azure Cosmos DB-adatbázisra és -tárolóra vonatkozik. A tárolóra vagy adatbázisra vonatkozó összes olvasás és lekérdezés alapértelmezés szerint a megadott konzisztenciaszintet használja.

Az olvasási konzisztencia egy logikai partíción belül hatókörrel rendelkező egyetlen olvasási műveletre vonatkozik. Az olvasási műveletet távoli ügyfél vagy tárolt eljárás is kiadhatja.

Konzisztenciaszintekhez kapcsolódó garanciák

Az Azure Cosmos DB garantálja, hogy az olvasási kérelmek 100%-a megfeleljen a konzisztencia garanciájának a választott konzisztenciaszintre vonatkozóan. Az Azure Cosmos DB öt konzisztenciaszintjének pontos definícióit a TLA+ specifikációs nyelv használatával az azure-cosmos-tla GitHub-adattár tartalmazza.

Erős konzisztencia

Az erős konzisztencia garantálja a linearizálhatóságot. A linearizability a kérések egyidejű kiszolgálására utal. Az olvasások garantáltan visszaadják az elem legújabb véglegesített verzióját. Az ügyfél soha nem lát nem véglegesített vagy részleges írást. A felhasználók mindig garantáltan elolvassák a legújabb véglegesített írást.

Korlátozott frissesség konzisztenciaszint

A korlátozott elavultság konzisztenciájában az olvasások garantáltan megfelelnek a konzisztens előtagra vonatkozó garanciának. Az olvasások legfeljebb egy elem "K" verzióinak (azaz "frissítések") vagy "T" időintervallumnak megfelelő írási késéssel járhatnak, attól függően, hogy melyik az első. Más szóval, ha a korlátozott elavultságot választja, az "elavultság" kétféleképpen konfigurálható:

  • Az elem verzióinak száma (K)
  • Előfordulhat, hogy az időintervallum (T) olvasása elmarad az írástól

Egyetlen régiófiók esetében a K és a T minimális értéke 10 írási művelet vagy 5 másodperc. Többrégiós fiókok esetén a K és a T minimális értéke 100 000 írási művelet vagy 300 másodperc.

Munkamenet-konzisztencia

A munkamenet-konzisztenciában az egyetlen ügyfél-munkameneten belüli olvasások garantáltan betartják a konzisztens előtagot, a monoton olvasást, a monoton írást, a beolvasást és az írás-követő olvasási garanciát. Ez egyetlen "írói" munkamenetet feltételez, vagy több író munkamenet-jogkivonatát osztja meg.

Konzisztens előtag konzisztenciaszint

A konzisztens előtagban az egy dokumentum írása során végrehajtott frissítések a végleges konzisztenciát látják. Frissítések kötegként egy tranzakción belül, a rendszer konzisztensen adja vissza azt a tranzakciót, amelyben lekötötték őket. A több dokumentumból álló tranzakción belüli írási műveletek mindig együtt láthatók.

Tegyük fel, hogy két írási művelet történik az 1. és a 2. dokumentum dokumentumain a T1 és a T2 tranzakciókon belül. Amikor az ügyfél olvasást végez bármely replikában, a felhasználó a "Doc 1 v1 and Doc 2 v1" vagy a "Doc 1 v2 and Doc 2 v2" szöveget látja, de soha nem "Doc 1 v1 and Doc 2 v2" vagy "Doc 1 v2 and Doc 2 v1" ugyanazt az olvasási vagy lekérdezési műveletet.

Végleges konzisztencia

Végső konzisztenciában nincs megrendelési garancia az olvasásokra. Ha nincsenek további írások, a replikák végül konvergálnak.

A végleges konzisztencia a konzisztencia leggyengébb formája, mivel az ügyfél elolvashatja a korábbiaknál régebbi értékeket. A végleges konzisztencia akkor jó megoldás, ha az alkalmazásoknak nincs szüksége sorrenddel kapcsolatos biztosítékokra. Ilyenek például az újrapróbálkozások, a kedvelések vagy a nem olvasott megjegyzések száma