Co je řízení souběžnosti?
Řízení souběžnosti v systému správy databází je postup správy simultánních operací bez vzájemného konfliktu. Zajišťuje, že transakce databáze jsou prováděny souběžně a přesně, aby se dosáhlo správných výsledků bez narušení integrity dat příslušné databáze.
Souběžný přístup je docela snadný, pokud všichni uživatelé právě čtou data. Neexistuje žádný způsob, jak by si mohli navzájem překážet. Ačkoli pro každou praktickou databázi by to mělo kombinaci operací ČTENÍ a ZÁPISU, a proto je souběžnost výzvou.
Řízení souběžnosti DBMS se používá k řešení takových konfliktů, ke kterým většinou dochází v systému s více uživateli. Proto je řízení souběžnosti nejdůležitějším prvkem pro správné fungování systému správy databází, kde jsou současně prováděny dvě nebo více transakcí databáze, které vyžadují přístup ke stejným datům.
V tomto výukovém programu se naučíte
- Co je řízení souběžnosti?
- Potenciální problémy souběžnosti
- Proč používat metodu souběžnosti?
- Protokoly řízení souběžnosti
- Protokoly založené na zámku
- Protokol dvoufázového zámku (2PL)
- Protokoly založené na časovém razítku
- Protokol založený na ověření
- Charakteristika protokolu dobré souběžnosti
Potenciální problémy souběžnosti
Zde jsou některé problémy, kterým budete pravděpodobně čelit při použití metody řízení souběžnosti DBMS:
- Ke ztraceným aktualizacím dochází, když více transakcí vybere stejný řádek a aktualizuje řádek na základě vybrané hodnoty
- Problémy s nezávaznými závislostmi nastanou, když druhá transakce vybere řádek, který je aktualizován jinou transakcí ( špinavé čtení )
- K neopakovatelnému čtení dochází, když se druhá transakce pokouší získat přístup ke stejnému řádku několikrát a čte pokaždé jiná data.
- K problému s nesprávným souhrnem dochází, když jedna transakce převezme souhrn nad hodnotu všech instancí opakované datové položky a druhá transakce aktualizuje několik instancí této konkrétní datové položky. V takové situaci výsledné shrnutí neodráží správný výsledek.
Proč používat metodu souběžnosti?
Důvody pro použití metody řízení souběžnosti je DBMS:
- Použít izolaci prostřednictvím vzájemného vyloučení mezi konfliktními transakcemi
- Vyřešit problémy se čtením a zápisem a konflikty zápisu a zápisu
- Zachovat konzistenci databáze neustálým zachováváním překážek při provádění
- Systém musí řídit interakci mezi souběžnými transakcemi. Této kontroly je dosaženo pomocí schémat souběžné kontroly.
- Řízení souběžnosti pomáhá zajistit serializovatelnost
Příklad
Předpokládejme, že dva lidé, kteří chodí do elektronických kiosků současně, si koupí lístek do kina pro stejný film a stejný pořadový čas.
Ve filmovém představení v daném divadle však zbývá jen jedno místo. Bez řízení souběžnosti v DBMS je možné, že si oba diváci nakonec zakoupí lístek. Metoda řízení souběžnosti to však neumožňuje. Oba diváci mají stále přístup k informacím zapsaným v databázi filmových sedadel. Řízení souběžnosti však poskytuje lístek pouze kupujícímu, který nejprve dokončil proces transakce.
Protokoly řízení souběžnosti
Různé protokoly řízení souběžnosti nabízejí různé výhody mezi množstvím souběžnosti, které povolují, a množstvím režijních nákladů, které ukládají. Následují techniky řízení souběžnosti v DBMS:
- Protokoly založené na zámku
- Protokol dvoufázového zámku
- Protokoly založené na časovém razítku
- Protokoly založené na ověření
Protokoly založené na zámku
Lock Based Protocols in DBMS je mechanismus, ve kterém transakce nemůže číst nebo zapisovat data, dokud nezíská příslušný zámek. Protokoly založené na uzamčení pomáhají eliminovat problém souběžnosti v DBMS pro simultánní transakce uzamčením nebo izolací konkrétní transakce jedinému uživateli.
Zámek je datová proměnná, která je přidružena k datové položce. Tento zámek znamená, že operace, které lze provést s datovou položkou. Zámky v DBMS pomáhají synchronizovat přístup k položkám databáze souběžnými transakcemi.
Všechny požadavky na zámek se odesílají správci řízení souběžnosti. Transakce probíhají pouze po schválení požadavku na zámek.
Binární zámky: Binární zámek na datové položce může být uzamčen nebo odemčen.
Sdílené / exkluzivní: Tento typ uzamykacího mechanismu odděluje zámky v DBMS na základě jejich použití. Pokud je na datové položce získán zámek k provedení operace zápisu, nazývá se to výlučným zámkem.
1. Sdílený zámek (S):
Sdílený zámek se také nazývá zámek jen pro čtení. Se sdíleným zámkem lze datovou položku sdílet mezi transakcemi. Je to proto, že nikdy nebudete mít oprávnění k aktualizaci údajů o datové položce.
Zvažte například případ, kdy dvě transakce čtou zůstatek na účtu osoby. Databáze je nechá číst umístěním sdíleného zámku. Pokud však chce jiná transakce aktualizovat zůstatek na účtu, sdílený zámek tomu zabrání, dokud proces čtení neskončí.
2. Exkluzivní zámek (X):
S Exkluzivním zámkem lze datovou položku číst i zapisovat. Toto je exkluzivní a nelze jej současně držet na stejné datové položce. X-lock je vyžadován pomocí instrukce lock-x. Transakce mohou datovou položku odemknout po dokončení operace zápisu.
Například když transakce potřebuje aktualizovat zůstatek na účtu osoby. Tuto transakci můžete povolit umístěním zámku X. Proto když chce druhá transakce číst nebo zapisovat, výlučný zámek zabrání této operaci.
3. Simplistic Lock Protocol
Tento typ protokolů založených na zámku umožňuje transakcím získat zámek každého objektu před zahájením operace. Transakce mohou datovou položku odemknout po dokončení operace zápisu.
4. Předběžné uplatnění zamykání
Protokol předběžného nárokování zámku pomáhá vyhodnotit operace a vytvořit seznam požadovaných datových položek, které jsou potřebné k zahájení procesu provádění. V situaci, kdy jsou uděleny všechny zámky, se transakce provede. Poté se všechny zámky uvolní, když skončí všechny jeho operace.
Hladovění
Hladovění je situace, kdy transakce musí čekat na dobu neurčitou, aby získala zámek.
Následují důvody pro hladovění:
- Při čekání není řádně spravováno schéma pro uzamčené položky
- V případě úniku zdrojů
- Stejná transakce je vybrána jako oběť opakovaně
Zablokování
Zablokování odkazuje na konkrétní situaci, kdy dva nebo více procesů čekají na uvolnění prostředku navzájem nebo více než dva procesy čekají na zdroj v kruhovém řetězci.
Protokol dvoufázového zámku
Protokol dvoufázového zamykání, známý také jako protokol 2PL, je metoda řízení souběžnosti v systému DBMS, která zajišťuje serializovatelnost aplikací zámku na data transakce, která blokuje další transakce pro přístup ke stejným datům současně. Protokol dvoufázového zámku pomáhá eliminovat problém se souběžností v DBMS.
Tento uzamykací protokol rozděluje fázi provádění transakce na tři různé části.
- V první fázi, když se transakce začíná provádět, vyžaduje povolení zámků, které potřebuje.
- Druhá část je místo, kde transakce získá všechny zámky. Když transakce uvolní svůj první zámek, spustí se třetí fáze.
- V této třetí fázi nemůže transakce vyžadovat žádné nové zámky. Místo toho uvolní pouze získané zámky.
Protokol dvoufázového zamykání umožňuje každé transakci provést požadavek na zamknutí nebo odemknutí ve dvou krocích:
- Fáze růstu : V této fázi může transakce získat zámky, ale nemusí uvolnit žádné zámky.
- Fáze zmenšování : V této fázi může transakce uvolnit zámky, ale nezíská žádný nový zámek
Je pravda, že protokol 2PL nabízí serializaci. Nezaručuje však, že nedojde k zablokování.
Ve výše uvedeném diagramu vidíte, že místní a globální detektory zablokování hledají zablokování a řeší je obnovením transakcí do jejich počátečních stavů.
Přísná dvoufázová metoda blokování
Přísný dvoufázový uzamykací systém je téměř podobný 2PL. Jediným rozdílem je, že Strict-2PL po použití zámek nikdy nevydá. Drží všechny zámky až do bodu potvrzení a uvolní všechny zámky najednou, když je proces u konce.
Centralizovaná 2PL
V Centralized 2 PL je za správu zámku odpovědný jeden web. Má pouze jednoho správce zámku pro celý DBMS.
Primární kopie 2PL
Mechanismus primární kopie 2PL, mnoho správců zámku je distribuováno na různé weby. Poté je za správu zámku pro sadu datových položek zodpovědný konkrétní správce zámku. Po aktualizaci primární kopie se změna rozšíří na otroky.
Distribuováno 2PL
V tomto druhu dvoufázového uzamykacího mechanismu jsou správci zámku distribuováni na všechny weby. Jsou zodpovědní za správu zámků pro data na tomto webu. Pokud nejsou replikována žádná data, je to ekvivalent primární kopie 2PL. Komunikační náklady distribuované 2PL jsou o dost vyšší než u primární kopie 2PL
Protokoly založené na časovém razítku
Protokol založený na časovém razítku v DBMS je algoritmus, který používá systémový čas nebo logický čítač jako časové razítko k serializaci provádění souběžných transakcí. Protokol založený na časovém razítku zajišťuje, že všechny konfliktní operace čtení a zápisu jsou prováděny v pořadí časových značek.
U této metody je vždy dána přednost starší transakci. K určení časového razítka transakce používá systémový čas. Toto je nejčastěji používaný protokol souběžnosti.
Protokoly založené na zámku vám pomohou spravovat pořadí mezi konfliktními transakcemi, když budou provedeny. Protokoly založené na časovém razítku spravují konflikty, jakmile je vytvořena operace.
Příklad:
Suppose there are there transactions T1, T2, and T3.T1 has entered the system at time 0010T2 has entered the system at 0020T3 has entered the system at 0030Priority will be given to transaction T1, then transaction T2 and lastly Transaction T3.
Výhody :
- Plány lze serializovat stejně jako protokoly 2PL
- Žádné čekání na transakci, což eliminuje možnost zablokování!
Nevýhody:
Hladovění je možné, pokud je stejná transakce restartována a trvale přerušena
Protokol založený na ověření
Protokol založený na ověřování v DBMS, známý také jako Optimistická technika řízení souběžnosti, je metoda, jak se vyhnout souběžnosti v transakcích. V tomto protokolu jsou aktualizovány místní kopie dat transakce, nikoli data samotná, což má za následek menší rušení při provádění transakce.
Protokol založený na ověření se provádí v následujících třech fázích:
- Číst fázi
- Fáze ověřování
- Napište fázi
Číst fázi
Ve fázi čtení lze hodnoty dat z databáze číst transakcí, ale operace zápisu nebo aktualizace se použijí pouze na místní kopie dat, nikoli na skutečnou databázi.
Fáze ověřování
Ve fázi ověřování se kontrolují data, aby se zajistilo, že při aplikaci aktualizací transakcí do databáze nedojde k narušení serializace.
Napište fázi
Ve fázi zápisu se aktualizace použijí na databázi, pokud je ověření úspěšné, jinak; aktualizace se nepoužijí a transakce se vrátí zpět.
Charakteristika protokolu dobré souběžnosti
Ideální mechanismus řízení souběžnosti DBMS má následující cíle:
- Musí být odolný vůči selhání webu a komunikace.
- Umožňuje paralelní provádění transakcí k dosažení maximální souběžnosti.
- Jeho mechanismy úložiště a výpočetní metody by měly být skromné, aby se minimalizovala režie.
- Musí vynutit určitá omezení struktury atomových akcí transakcí.
souhrn
- Řízení souběžnosti je procedura v DBMS pro správu simultánních operací bez vzájemného konfliktu.
- Ztracené aktualizace, špinavé čtení, neopakovatelné čtení a nesprávný souhrnný problém jsou problémy, kterým čelí kvůli nedostatku kontroly souběžnosti.
- Lock-Based, Two-Phase, Timestamp-Based, Validation-Based are types of Concurrency handling protocols
- Zámek může být sdílený (S) nebo exkluzivní (X)
- Dvoufázový zamykací protokol, který je také známý jako protokol 2PL, vyžaduje transakci, měl by získat zámek poté, co uvolní jeden ze svých zámků. Má 2 fáze rostoucí a zmenšující se.
- Algoritmus založený na časovém razítku používá časové razítko k serializaci provádění souběžných transakcí. Protokol používá systémový čas nebo logický počet jako časové razítko.