Čo je to riadenie súbežnosti?
Riadenie súbežnosti v systéme správy databázy je postup riadenia simultánnych operácií bez vzájomných konfliktov. Zaisťuje, že transakcie databázy sa vykonávajú súbežne a presne, aby sa dosiahli správne výsledky bez narušenia integrity údajov príslušnej databázy.
Súbežný prístup je celkom jednoduchý, ak všetci používatelia práve čítajú údaje. Nie je možné, aby si navzájom prekážali. Aj keď pre každú praktickú databázu, mala by kombináciu operácií ČÍTANIA a PÍSANIA, a preto je súbežnosť výzvou.
DBMS Concurrency Control sa používa na riešenie takýchto konfliktov, ktoré sa väčšinou vyskytujú v systéme viacerých používateľov. Preto je kontrola súbežnosti najdôležitejším prvkom pre správne fungovanie systému správy databáz, kde sa súčasne vykonávajú dve alebo viac databázových transakcií, ktoré si vyžadujú prístup k rovnakým údajom.
V tomto návode sa naučíte
- Čo je to riadenie súbežnosti?
- Potenciálne problémy súbežnosti
- Prečo používať metódu súbežnosti?
- Protokoly na riadenie súbežnosti
- Protokoly založené na zámkoch
- Protokol dvojfázového blokovania (2PL)
- Protokoly založené na časovej značke
- Protokol založený na overení
- Charakteristika protokolu dobrej súbežnosti
Potenciálne problémy súbežnosti
Tu je niekoľko problémov, s ktorými sa budete pravdepodobne stretávať pri použití metódy riadenia súbežnosti DBMS:
- Stratené aktualizácie sa vyskytujú, keď viaceré transakcie vyberú ten istý riadok a aktualizujú riadok na základe vybranej hodnoty
- Problémy s nezáväznou závislosťou sa vyskytujú, keď druhá transakcia vyberie riadok, ktorý je aktualizovaný ďalšou transakciou ( špinavé čítanie )
- K neopakovateľnému čítaniu dochádza, keď sa druhá transakcia pokúša získať prístup k rovnakému riadku niekoľkokrát a načíta zakaždým iné údaje.
- Problém s nesprávnym súhrnom nastáva, keď jedna transakcia prevezme súhrn nad hodnotou všetkých inštancií opakovanej dátovej položky a druhá transakcia aktualizuje niekoľko inštancií konkrétnej dátovej položky. V takom prípade výsledné zhrnutie neodráža správny výsledok.
Prečo používať metódu súbežnosti?
Dôvody použitia metódy riadenia súbežnosti sú DBMS:
- Použiť izoláciu prostredníctvom vzájomného vylúčenia medzi konfliktnými transakciami
- Vyriešiť problémy spojené s čítaním a zápisom a konfliktom zápisu a zápisu
- Na zachovanie konzistencie databázy neustálym zachovávaním prekážok vykonávania
- Systém musí riadiť interakciu medzi súbežnými transakciami. Táto kontrola sa dosahuje pomocou schém súbežnej kontroly.
- Riadenie súbežnosti pomáha zabezpečiť serializovateľnosť
Príklad
Predpokladajme, že dvaja ľudia, ktorí idú do elektronických kioskov súčasne, aby si kúpili lístok na film pre ten istý film a rovnaký čas premietania.
Pre filmové predstavenie v danom divadle však zostáva iba jedno miesto. Bez riadenia súbežnosti v DBMS je možné, že si obaja diváci kúpia lístok. Metóda riadenia súbežnosti to však neumožňuje. Obaja diváci majú stále prístup k informáciám napísaným v databáze filmových sedadiel. Kontrola súbežnosti však poskytuje lístok iba kupujúcemu, ktorý najskôr dokončil transakčný proces.
Protokoly na riadenie súbežnosti
Rôzne protokoly na kontrolu súbežnosti ponúkajú rôzne výhody medzi povolenou mierou súbežnosti a výškou režijných nákladov, ktoré ukladajú. Nasledujú techniky riadenia súbežnosti v DBMS:
- Protokoly založené na zámkoch
- Protokol dvojfázového blokovania
- Protokoly založené na časovej značke
- Protokoly založené na validácii
Protokoly založené na zámkoch
Lock Based Protocols in DBMS je mechanizmus, v ktorom transakcia nemôže čítať ani zapisovať údaje, kým nezíska vhodný zámok. Protokoly založené na zámkoch pomáhajú eliminovať problém súbežnosti v systéme DBMS pre simultánne transakcie uzamknutím alebo izolovaním konkrétnej transakcie od jedného používateľa.
Zámok je dátová premenná, ktorá je spojená s údajovou položkou. Tento zámok znamená, že operácie, ktoré je možné vykonať s údajovou položkou. Zámky v systéme DBMS pomáhajú synchronizovať prístup k položkám databázy súbežnými transakciami.
Všetky žiadosti o uzamknutie sa odošlú správcovi riadenia súbežnosti. Transakcie prebiehajú až po schválení žiadosti o uzamknutie.
Binárne zámky: Binárny zámok na dátovej položke môže byť uzamknutý alebo odomknutý.
Zdieľané / výlučné: Tento typ uzamykacieho mechanizmu oddeľuje zámky v systéme DBMS na základe ich použitia. Ak sa na dátovej položke získa zámok na vykonanie operácie zápisu, nazýva sa to výlučným zámkom.
1. Zdieľaný zámok (s):
Zdieľaný zámok sa tiež nazýva zámok iba na čítanie. Pomocou zdieľaného zámku možno dátovú položku zdieľať medzi transakciami. Je to tak preto, lebo nikdy nebudete mať povolenie na aktualizáciu údajov o dátovej položke.
Zvážte napríklad prípad, keď dve transakcie načítajú zostatok na účte osoby. Databáza ich nechá čítať umiestnením zdieľaného zámku. Ak však chce iná transakcia aktualizovať zostatok na účte, zdieľaný zámok tomu zabráni, kým sa proces čítania neskončí.
2. Exkluzívny zámok (X):
Pomocou Exkluzívneho zámku je možné údajovú položku čítať aj zapisovať. Toto je exkluzívne a nemôže byť súčasne držané na tej istej dátovej položke. X-lock sa vyžaduje pomocou inštrukcie lock-x. Transakcie môžu dátovú položku odomknúť po dokončení operácie „zápisu“.
Napríklad keď je potrebné v transakcii aktualizovať zostatok na účte osoby. Túto transakciu môžete povoliť umiestnením zámku X. Preto keď chce druhá transakcia čítať alebo zapisovať, výlučný zámok zabráni tejto operácii.
3. Zjednodušený zámkový protokol
Tento typ protokolov založených na zámkoch umožňuje transakciám získať zámok na každom objekte pred začatím operácie. Transakcie môžu dátovú položku odomknúť po dokončení operácie „zápisu“.
4. Predbežné uplatnenie nároku na blokovanie
Protokol predbežného nároku na zámok pomáha vyhodnotiť operácie a vytvoriť zoznam požadovaných údajových položiek, ktoré sú potrebné na zahájenie procesu vykonania. V situácii, keď sú udelené všetky zámky, sa transakcia vykoná. Potom sa všetky zámky uvoľnia, keď sa skončia všetky jeho činnosti.
Hladovka
Hladom je situácia, keď na získanie zámku musí transakcia čakať neurčitý čas.
Dôvody hladovania sú tieto:
- Pri čakaní nie je schéma uzamknutých položiek správne spravovaná
- V prípade úniku zdrojov
- Rovnaká transakcia sa vyberá ako obeť opakovane
Uviaznutie
Zablokovanie sa týka konkrétnej situácie, keď dva alebo viac procesov čaká na seba, aby uvoľnili zdroj, alebo viac ako dva procesy čakajú na zdroj v kruhovom reťazci.
Protokol dvojfázového blokovania
Protokol dvojfázového uzamykania, tiež známy ako protokol 2PL, je metóda riadenia súbežnosti v systéme DBMS, ktorá zaisťuje serializovateľnosť aplikovaním zámku na dáta transakcie, ktorý blokuje ďalšie transakcie, aby súčasne získali prístup k rovnakým údajom. Protokol dvojfázového uzamykania pomáha eliminovať problém súbežnosti v DBMS.
Tento uzamykací protokol rozdeľuje fázu vykonania transakcie na tri rôzne časti.
- V prvej fáze, keď sa transakcia začne vykonávať, vyžaduje povolenie na zámky, ktoré potrebuje.
- Druhá časť je miestom, kde transakcia získa všetky zámky. Keď transakcia uvoľní prvý zámok, začne sa tretia fáza.
- V tejto tretej fáze si transakcia nemôže vyžadovať žiadne nové zámky. Namiesto toho iba uvoľní získané zámky.
Protokol dvojfázového uzamykania umožňuje každej transakcii vykonať požiadavku na uzamknutie alebo odomknutie v dvoch krokoch:
- Fáza rastu : V tejto fáze môže transakcia získať zámky, ale nemusí uvoľniť žiadne zámky.
- Fáza zmenšovania : V tejto fáze môže transakcia uvoľniť zámky, ale nemusí získať žiadny nový zámok
Je pravda, že protokol 2PL ponúka serializáciu. Nezabezpečuje však, že nedôjde k zablokovaniu.
Na vyššie uvedenom diagrame môžete vidieť, že miestne a globálne detektory zablokovania hľadajú zablokovania a riešia ich obnovením transakcií do ich počiatočných stavov.
Prísna metóda dvojfázového blokovania
Prísny dvojfázový uzamykací systém je takmer podobný 2PL. Jediný rozdiel je v tom, že Strict-2PL po jeho použití nikdy neuvoľní zámok. Drží všetky zámky až do bodu potvrdenia a po ukončení procesu ich uvoľní naraz.
Centralizovaná 2PL
V systéme Centralized 2 PL je za proces správy zámkov zodpovedný jeden server. Má iba jedného správcu zámku pre celý systém DBMS.
Primárna kópia 2PL
Mechanizmus primárnej kópie 2PL, veľa správcov zámkov je distribuovaných na rôzne stránky. Potom je za správu zámku pre množinu dátových položiek zodpovedný konkrétny správca zámku. Po aktualizácii primárnej kópie sa zmena prenesie na otrokov.
Distribuované 2PL
V tomto druhu dvojfázového uzamykacieho mechanizmu sú správcovia zámku distribuovaní na všetky stránky. Zodpovedajú za správu zámkov údajov na danom mieste. Ak nie sú replikované žiadne údaje, je to ekvivalent s primárnou kópiou 2PL. Komunikačné náklady na Distribuovanú 2PL sú dosť vysoké ako primárna kópia 2PL
Protokoly založené na časovej značke
Protokol založený na časovej značke v DBMS je algoritmus, ktorý používa systémový čas alebo logické počítadlo ako časovú značku na serializáciu vykonávania súbežných transakcií. Protokol založený na časovej značke zaisťuje, že všetky konfliktné operácie čítania a zápisu sa vykonávajú v poradí časových značiek.
Pri tejto metóde sa vždy dáva prednosť staršej transakcii. Na určenie časovej pečiatky transakcie používa systémový čas. Toto je najbežnejšie používaný protokol súbežnosti.
Zámkové protokoly vám pomôžu riadiť poradie medzi konfliktnými transakciami, keď sa vykonajú. Protokoly založené na časovej pečiatke zvládajú konflikty hneď po vytvorení operácie.
Prí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 sú serializovateľné rovnako ako protokoly 2PL
- Žiadne čakanie na transakciu, čo eliminuje možnosť zablokovania!
Nevýhody:
Hladovanie je možné, ak sa rovnaká transakcia reštartuje a neustále prerušuje
Protokol založený na overení
Protokol založený na validácii v DBMS, ktorý sa tiež nazýva Optimistická technika riadenia súbežnosti, je metóda, ktorá zabráni súbežnosti v transakciách. V tomto protokole sa aktualizujú skôr miestne kópie údajov o transakcii než samotné údaje, čo má za následok menšie rušenie pri vykonávaní transakcie.
Protokol založený na overení sa vykonáva v nasledujúcich troch fázach:
- Fáza čítania
- Fáza overenia
- Napíšte fázu
Fáza čítania
Vo fáze čítania možno údaje z databázy načítať transakciou, ale operácia zápisu alebo aktualizácie sa použijú iba na miestne kópie údajov, nie na skutočnú databázu.
Fáza overenia
Vo fáze overovania sa údaje kontrolujú, aby sa zabezpečilo, že pri aplikácii aktualizácií transakcií do databázy nedôjde k narušeniu serializovateľnosti.
Napíšte fázu
Vo fáze zápisu sa aktualizácie použijú v databáze, ak je overenie úspešné, inak; aktualizácie sa neaplikujú a transakcia sa vráti späť.
Charakteristika protokolu dobrej súbežnosti
Ideálny mechanizmus riadenia súbežnosti DBMS má nasledujúce ciele:
- Musí byť odolný voči výpadkom stránok a komunikácie.
- Umožňuje paralelné vykonávanie transakcií na dosiahnutie maximálnej súbežnosti.
- Jeho mechanizmy ukladania a výpočtové metódy by mali byť skromné, aby sa minimalizovala réžia.
- Musí vynútiť určité obmedzenia v štruktúre atómových akcií transakcií.
Zhrnutie
- Riadenie súbežnosti je procedúra v DBMS na riadenie simultánnych operácií bez vzájomných konfliktov.
- Stratené aktualizácie, špinavé čítanie, neopakovateľné čítanie a nesprávny súhrnný problém sú problémy, ktorým čelí nedostatok kontroly nad súbežnosťou.
- Lock-Based, Two-Phase, Timestamp-Based, Validation-Based are types of Concurrency handling protocols
- Zámok môže byť zdieľaný (S) alebo exkluzívny (X)
- Dvojfázový zamykací protokol, ktorý je tiež známy ako protokol 2PL, vyžaduje transakciu, mal by získať zámok po uvoľnení jedného zo svojich zámkov. Má 2 fázy rastu a zmenšovania.
- Algoritmus založený na časovej značke používa časovú značku na serializáciu vykonávania súbežných transakcií. Protokol používa ako časovú značku systémový čas alebo logický počet .