Obsah:
- ", což není určeno pro všechny databáze. Ve skutečnosti většina databází NoSQL neposkytuje záruku ACID.
- dvě
- enterprise, mission
Video: Method feeder praktiky v plytkej vode 2025
Vlastnost databáze databáze znamená, že jakmile jsou data úspěšně zapsána do databáze, dotazy, které následují, jsou schopny přistupovat k datům a získat konzistentní pohled na data. V praxi to znamená, že pokud zapíšete záznam do databáze a pak okamžitě požádáte o záznam, zaručíte to. Je zvláště užitečné pro věci, jako jsou objednávky Amazon a bankovní převody.
Konzistence je posuvná měřítka a předmět příliš hluboký, aby se zde mohl pokrýt. Avšak v prostředí NoSQL se konzistence obecně dostává do jednoho ze dvou táborů:
-
Konzistence ACID (ACID znamená Atomicity, Consistency, Izolace, Trvanlivost): ACID znamená, že jakmile jsou data zapsána, máte plnou konzistenci čte.
-
Případná konzistence (BASE): BASE znamená, že jakmile jsou data zapsána, nakonec se zobrazí pro čtení.
Bitva zuřila mezi lidmi, kteří věří, že důraz na konzistenci v databázi není nutný, a ti, kteří se domnívají, že je absolutně nutná (přeložit lidi na) "marketingové oddělení! ). Realita je někde mezi. Záleží na tom, že příspěvek na Facebooku není vidět všichni jeho přátelé po dobu pěti minut? Ne, pravděpodobně ne. Změňte "post na Facebooku" na "miliardové dolarové finanční transakce" a váš postoj se rychle mění! Který konzistenční přístup si vyberete, závisí na situaci. Podle mých zkušeností je však silná konzistence vždy volbou v kritických situacích podnikových systémů.
Tato databáze má zařízení, které vás zastaví před poškozením nebo ztrátou dat,
", což není určeno pro všechny databáze. Ve skutečnosti většina databází NoSQL neposkytuje záruku ACID.
Nadace DB, MarkLogic a Neo4j jsou pozoruhodné výjimky. Některé databáze služby NoSQL poskytují záruku nižší úrovně nazývanou Kontrola a nastavení , která ověřuje, zda někdo jiný změnil dokument dříve, než povolí dokončení transakce. Toto chování je zpravidla omezené, protože má tendenci být implementováno na základě jednoho záznamu.
MongoDB je pozoruhodná databáze, která poskytuje možnosti Kontrola a nastavení. S programem MongoDB lze v průběhu aktualizace zablokovat data v celém uzlu, čímž se zabrání všem operacím čtení a zápisu, dokud operace nebude dokončena.Společnost však pracuje na odstranění tohoto omezení. ZÁKLAD BASE znamená, že místo toho, aby byla zaručena ACID, databáze má nastavitelnou rovnováhu konzistence a dostupnosti dat. To je typické v případě, kdy uzly v daném clusteru databází fungují jako primární správci části databáze a ostatní uzly obsahují repliky pouze pro čtení.
Chcete-li zajistit, aby každý klient viděl všechny aktualizace (to znamená, že mají konzistentní zobrazení dat), zápis do primárního uzlu, který drží data, musí být zablokován, dokud nejsou všechny repliky čtené aktuální. Toto se nazývá fáze
dvě
-
fáze - změna se provádí místně, ale je aplikována a potvrzena klientovi pouze tehdy, když jsou aktualizovány všechny ostatní uzly. BASE uvolňuje tento požadavek a vyžaduje pouze aktualizaci podmnožiny uzlů obsahujících stejná data, aby transakce mohla uspět. Někdy po provedení transakce je aktualizována replika jen pro čtení. Výhodou tohoto přístupu je, že transakce jsou zavázány rychleji. Mít čitelné živé repliky také znamená, že můžete rozložit své čitelné zatížení dat a urychlit čtení. Nevýhodou je, že klienti, kteří se připojují k některým čteným replikám, mohou na neurčitou dobu vidět zastaralé informace. V některých scénářích je tento stav v pořádku. Pokud pošlete novou zprávu na Facebooku a někteří vaši přátelé ji nevidí pár minut, není to velká ztráta. Pokud však do banky posíláte platební příkaz, možná budete chtít okamžitou transakci.
Alternativním přístupem k replikám pouze pro čtení je cluster
sdílený
-
nic , ve kterém pouze jeden uzel v clusteru vždy obsluhuje určitou část databáze. Sdílené - nic neznamená, že ztratíte replikaci. Databáze, které tuto metodu používají, typicky replikují data do sekundární oblasti v jiném primárním uzlu nebo uzlech - ale pouze jeden uzel je master pro čtení a zápis kdykoli. Sdružené sdílené skupiny nemají výhodu jednoduššího modelu konzistence, ale vyžadují dvoufázové odhodlání replikovat. To znamená, že transakce se zablokuje při aktualizaci všech replik. (Interní zámek a uzamčení pro jiné uzly vám dávají dvě fáze.) Toto obvykle má menší vliv než sdílené datové seskupení s repliky pouze pro čtení, ačkoli, protože oblasti s daty replik sdílené-žádné zprávy neobdrží žádosti o čtení části databáze. Proto jsou dvoufázové spáchání rychlejší na clusteru sdílené-nic než na clusteru s čitelnými replikami.
Výběr ACID nebo BASE?
Jak můžete očekávat, hodně z argumentu je, protože prodejci NoSQL se mohou odlišit od svých konkurentů tím, že tvrdí jiný a jedinečný přístup. Je zajímavé si uvědomit, že počet prodejců společnosti NoSQL s dodržováním předpisů ACID je v jejich plánu.
Některé databáze NoSQL mají na svém plánu soulad s ACID, i když jsou zastánci BASE, což ukazuje, jak důležité jsou záruky ACID pro systémy
enterprise, mission
-
critical . Mnoho společností používá produkty BASE-konzistence při testování nápadů, protože jsou volné, ale poté migrují na placenou databázi kompatibilní s ACID, když chtějí žít v kritickém systému. Nejjednodušší způsob, jak rozhodnout, zda potřebujete ACID, je zvážit interakce, které lidé a další systémy mají s vašimi daty. Například pokud přidáte nebo aktualizujete data, je důležité, aby další dotaz mohl vidět změnu? Jinými slovy, jsou důležitá rozhodnutí, která visí na aktuálním stavu databáze? Viděli by mírně zastaralé údaje znamenat, že tato rozhodnutí mohou být fatálně vadná? V oblasti finančních služeb je nutná konzistentnost. Mysli na obchodníky, kteří nakupují akcie. Potřebují před obchodováním zkontrolovat hotovostní zůstatky, aby zajistily, že mají peníze na pokrytí obchodu. Pokud nevidí správnou vyváženost, rozhodnou se, že vynakládají peníze na jinou transakci. Pokud je databáze, na kterou dotazují, jen nakonec konzistentní, nemusí vidět dostatek finančních prostředků, a tak vystavit svou organizaci finančnímu riziku.
Podobné případy mohou být vytvořeny pro ACID nad BASE ve zdravotnictví, obraně, zpravodajství a dalších odvětvích. To všechno se snižuje na data a důležitost včasnosti a zabezpečení dat.
