Volba vhodné úrovně konzistence

Dokončeno

Každý z modelů konzistence se dá použít pro konkrétní scénáře z reálného světa. Každá z nich poskytuje přesné kompromisy mezi dostupností a výkonem, které jsou zajištěny komplexními smlouvami SLA. Následující jednoduché aspekty vám pomůžou zvolit správnou volbu v mnoha běžných scénářích.

Konfigurace výchozí úrovně konzistence

Výchozí úroveň konzistence pro účet služby Azure Cosmos DB můžete kdykoli nakonfigurovat. Výchozí úroveň konzistence nakonfigurovaná pro váš účet platí pro všechny databáze a kontejnery Azure Cosmos DB v rámci daného účtu. Všechna čtení a dotazy vystavené pro kontejner nebo databázi ve výchozím nastavení používají zadanou úroveň konzistence.

Konzistence čtení se vztahuje na jednu operaci čtení vymezenou v rámci logického oddílu. Operaci čtení může vystavit vzdálený klient nebo uložená procedura.

Záruky spojené s úrovněmi konzistence

Azure Cosmos DB zaručuje, že 100 % požadavků na čtení splňuje záruku konzistence zvolené úrovně konzistence. Přesné definice pěti úrovní konzistence ve službě Azure Cosmos DB pomocí jazyka specifikace TLA+ jsou k dispozici v úložišti azure-cosmos-tla GitHub.

Model silné konzistence

Silná konzistence nabízí záruku linearizovatelnosti. Linearizovatelnost odkazuje na souběžné obsluhování požadavků. Čtení zaručuje vrácení nejnovější potvrzené verze položky. Klient nikdy neuvidí nepotvrzené ani částečné zápisy. Uživatelům je vždy zaručeno čtení nejnovějšího potvrzeného zápisu.

Konzistence Omezená neaktuálnost

V konzistenci omezené nestarosti je prodleva dat mezi všemi dvěma oblastmi vždy menší než zadaná částka. Množství může být K verze (tj. aktualizuje) položky nebo podle T časových intervalů podle toho, co nastane dříve. Jinými slovy, když zvolíte ohraničenou neakutnost, lze maximální neakutnost dat v libovolné oblasti nakonfigurovat dvěma způsoby:

  • Počet verzí (K) položky
  • Časové intervaly čtení (T) můžou za zápisy zpožďovat.

Ohraničená neschválnost je výhodná především pro účty pro zápis do jedné oblasti se dvěma nebo více oblastmi. Pokud prodleva dat v oblasti (určená podle fyzického oddílu) překročí nakonfigurovanou hodnotu neschytnosti, zapisuje se pro tento oddíl do doby, než se zastaralost vrátí do nakonfigurované horní hranice.

Pro účet s jednou oblastí poskytuje ohraničená neskonzistence stejné záruky konzistence zápisu jako relace a konečná konzistence. Při omezené nestarosti se data replikují do místní většiny (tři repliky ve 4 sadě replik) v jedné oblasti.

Konzistence Relace

Při konzistenci relace je zaručeno, že čtení v rámci jedné relace klienta bude respektovat záruky čtení i zápisu a zápisu po čtení. Tato záruka předpokládá buď jednu relaci pro zapisovatele, nebo sdílení tokenu pro relaci mezi více zapisovateli.

Stejně jako všechny úrovně konzistence slabší než Silná se zápisy replikují na minimálně tři repliky (ve čtyřech replikách) v místní oblasti s asynchronní replikací do všech ostatních oblastí.

Konzistence Konzistentní předpona

V konzistentní předponě se aktualizace provedené jako zápisy do jednoho dokumentu zobrazují v konečné konzistenci. Aktualizace provedené jako dávka v rámci transakce jsou vrácené konzistentní s transakcí, ve které byly potvrzeny. Operace zápisu v rámci transakce více dokumentů jsou vždy viditelné společně.

Předpokládejme, že se na dokumentech Doc 1 a Doc 2 v rámci transakcí T1 a T2 provádějí dvě operace zápisu. Když klient provede čtení v libovolné replice, zobrazí se uživateli buď "Doc 1 v1 a Doc 2 v1" nebo "Doc 1 v2 a Doc 2 v2,". " ale nikdy "Doc 1 v1 a Doc 2 v2" nebo "Doc 1 v2 a Doc 2 v1" pro stejnou operaci čtení nebo dotazu.

Případná konzistence

V konečné konzistenci neexistuje žádná záruka řazení pro čtení. Pokud nedojde k žádným dalším operacím zápisu, repliky se nakonec konvergují.

Konečná konzistence je nejslabší forma konzistence, protože klient si může přečíst hodnoty, které jsou starší než ty, které před tím přečte. Konzistence typu Případné je ideální tam, kde aplikace nevyžaduje žádné záruky řazení. Mezi příklady patří počet retweetů, lajků nebo nečtených komentářů.