Useita rakeisuuden lukituksia - Multiple granularity locking
In Computer Science , useita rakeisuus lukitus (MGL) on lukitus, jota käytetään tietokannan hallintajärjestelmä (DBMS) ja relaatiotietokannat .
Useissa tarkkuuslukituksissa lukot asetetaan esineille, jotka sisältävät muita esineitä. MGL hyödyntää hierarkkinen luonne sisältää suhdetta. Esimerkiksi tietokannassa voi olla tiedostoja, jotka sisältävät sivuja, jotka sisältävät tietueita. Tätä voidaan ajatella esineiden puuna , jossa kukin solmu sisältää lapsensa. Tämän rakenteen lukko (kuten jaettu tai yksinomainen lukko) lukitsee kohdennetun solmun sekä kaikki sen jälkeläiset.
Useita rakeisuuden lukituksia käytetään yleensä tiukalla kaksivaiheisella lukituksella sarjallisuuden takaamiseksi .
Lukitustilat
Jaettujen ( S ) lukkojen ja muista lukitusjärjestelmistä saatavien yksinomaisten ( X ) lukkojen, kuten tiukan kaksivaiheisen lukituksen, lisäksi MGL käyttää myös tarkoituksellisia "lukkoja", jotka eivät lukitse suoraan solmua, vaan merkitsevät sen olemassaoloa tai tarkoitusta lisätä, tietyn tyyppinen lukko, joka on alhaisempi solmuhierarkiassa. Tarkoitettuihin lukkoihin kuuluvat "jaetut tarkoitukset" ( IS ), "yksinomaiset tarkoitukset" ( IX ) ja yhdistetyt "jaetut ja tarkoitukselliset yksinoikeudet" ( SIX ) -lukot. IS- lukot ovat ristiriidassa X- , kun taas IX- lukot ovat ristiriidassa S- ja X- lukkojen kanssa. Nollalukko ( NL ) on yhteensopiva kaiken kanssa.
Solmun lukitsemiseksi S: ssä (tai X ), MGL: llä on tapahtumalukko kaikissa sen esi-isissä, joilla on IS (tai IX ), joten jos tapahtuma lukitsee solmun S: ssä (tai X ), mikään muu tapahtuma ei voi käyttää esi-isiään X (tai S ja X ). Tämä protokolla on esitetty seuraavassa taulukossa:
| Saada | Täytyy olla kaikilla esi-isillä |
| IS tai S | IS tai IX |
| IX, KUUSI tai X | IX tai KUUSI |
Lukitsemiseksi käytettävä tarkkuustaso määritetään lukitsemalla hienoin mahdollinen taso (ts. Alimmalle lehdelle) ja laajentamalla sitten nämä lukot tiedostohierarkian korkeammille tasoille kattamaan enemmän tietueita tai tiedostoelementtejä prosessissa tarpeen mukaan tunnetaan nimellä "lukon eskalaatio". MGL-lukitustilat ovat yhteensopivia seuraavassa matriisissa määritellyn mukaisesti.
| Tila | NL | ON | IX | S | KUUSI | X |
|---|---|---|---|---|---|---|
| NL | Joo | Joo | Joo | Joo | Joo | Joo |
| ON | Joo | Joo | Joo | Joo | Joo | Ei |
| IX | Joo | Joo | Joo | Ei | Ei | Ei |
| S | Joo | Joo | Ei | Joo | Ei | Ei |
| KUUSI | Joo | Joo | Ei | Ei | Ei | Ei |
| X | Joo | Ei | Ei | Ei | Ei | Ei |
Lukitusprotokollan ja yhteensopivuusmatriisin mukaisesti, jos yhdellä tapahtumalla on solmu S-tilassa, mikään muu tapahtuma ei ole voinut lukita yhtään esi-isää X-tilassa.