Databázové systémy 1 (DB1) - Paralelní zpracování transakcí
S?BD obsahuje 3 moduly pro paralelní zpracování:
- modul řízení transakcí (RT) – na který se transakce obracejí s žádostí o provedení operace
- plánovač – zabezpečuje synchronizaci požadavků více transakcí (z modulu RT), požadavky zpracovává do tzv. plánů
- modul řízení dat (RD) – v databázi vykonává čtení, zápis podle požadavků plánovače
U paralelního běhu se hlídá uspořádanost – aby výsledek dopadl stejně jako při sériovém uspořádání. Chyba nastane, když transakce nastanou navzájem – transakce se musí řídit.
LOCK
Objekt smí být zamčen pouze jednou transakcí a pokud jiná transakce chce číst hodnotu x, tak je pozastavena.
UNLOCK
Musí být proveden transakcí, která hodnotu x zamkla.
Lze dokázat, že uspořadatelnost je zaručena
- Objekt může být v jednom okamžiku uzamčen pouze pro jednu transakci.
- Jakmile transakce odemkne alespo? 1 objekt, nesmí již žádný jiný objekt zamknout.
Výlučný zámek x sdílený zámek. Sdílený zámek dovolí číst.
Jiné uzamykací protokoly – mohou být jiné, ale vyžaduje to další znalost o databázích. V případě stromu – hierarchická struktura (strom nemusí být vyvážený). Hierarchické databáze – závislost mezi entitami vytváří strom.
Stromový protokol pro hierarchickou databázi
- Výlučný zámek transakce T lze použít na jakýkoliv objekt X.
- Další objekt může být uzamčen transakcí T, pokud byl v T uzamčen jeho předchůdce.
- Objekty mohou být odemknuty kdykoliv.
- Objekt, který byl transakcí T zamknut a odemknut, nesmí být znovu zamknut transakcí T.
Poznámka: Lze dokázat, že tento protokol zaručí, že všechny rozvrhy jsou uspořádatelné a navíc nemůže dojít k uvíznutí.
Uzamykací protokol pro databázi typu B-stromu: uzel, který při operaci INSERT nebo operaci DELETE nezpůsobí zásah do nadřízeného uzlu nebo sousedů, se nazývá bezpečný.
Porovnání stromových a dvoufázových protokolů
Pokud chci hodnotit protokol, tak sleduji, kolik objektů zamkne a na jak dlouho je zamkne. Stromové protokoly zamykají více objektů, ale na kratší dobu. U stromových protokolů nedojde k uvíznutí.
Časové značky
- sledujeme časovou značku u transakce, což je okamžik, kdy transakce vznikla
- u každého objektu sledujeme časovou značku posledního čtení (R/ČZ) a časovou značku posledního zápisu (W/ČZ)
Princip
Transakce vznikne v určitém okamžiku a nemůže pracovat s objekty, jejichž hodnoty se změnily v "budoucnosti".
