Vícenásobné uzamčení podrobností - Multiple granularity locking
![]() | tento článek ne uvést žádný Zdroje.Prosince 2009) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
v počítačová věda, vícenásobné uzamčení podrobností (MGL) je uzamykací metoda používaná v systémy pro správu databází (DBMS) a relační databáze.
Při vícenásobném uzamčení zrnitosti zámky jsou nastaveny na objekty, které obsahují jiné objekty. MGL využívá hierarchickou povahu obsahuje vztah. Například databáze může mít soubory, které obsahují stránky, které obsahují záznamy. To lze považovat za strom objektů, kde každý uzel obsahuje své podřízené prvky. Zámek na této struktuře (například sdílený nebo exkluzivní zámek) zamkne cílené uzel stejně jako všichni jeho potomci.[1]
Uzamykání více podrobností se obvykle používá s non-strict dvoufázové zamykání garantovat serializovatelnost.
Uzamknout režimy
Kromě sdílené (S) zámky a exkluzivní (X) zámky z jiných zamykacích schémat, jako je přísné dvoufázové zamykání, používá MGL také úmyslné „zámky“, které přímo nezamykají uzel, ale místo toho označují existenci nebo záměr přidat, zámek uvedeného typu níže hierarchie uzlů. Záměrné zámky zahrnují „záměr sdílen“ (JE), „výlučný záměr“ (IX) a kombinované „sdílené a výlučné se záměrem“ (ŠEST) zámky. JE zámky konflikt s X zámky, zatímco IX zámky konflikt s S a X zámky. Nulový zámek (NL) je kompatibilní se vším.
Uzamčení uzlu S (nebo X), MGL má zámek transakcí u všech svých předků s JE (nebo IX), takže pokud transakce uzamkne uzel S (nebo X), žádná jiná transakce nemá přístup ke svým předkům v X (nebo S a X). Tento protokol je uveden v následující tabulce:
Dostat | Musí mít na všechny předky |
IS nebo S. | IS nebo IX |
IX, SIX nebo X | IX nebo SIX |
Určení úrovně granularity, která se má použít pro uzamčení, se provádí uzamčením nejjemnější možné úrovně (tj. Na nejnižším listu) a následným eskalováním těchto zámků na vyšší úrovně v hierarchii souborů, aby bylo možné pokrýt více záznamů nebo prvků souboru podle potřeby v procesu. známý jako „eskalace zámku“. Uzamykací režimy MGL jsou vzájemně kompatibilní, jak je definováno v následující matici.
Režim | NL | JE | IX | S | ŠEST | X |
---|---|---|---|---|---|---|
NL | Ano | Ano | Ano | Ano | Ano | Ano |
JE | Ano | Ano | Ano | Ano | Ano | Ne |
IX | Ano | Ano | Ano | Ne | Ne | Ne |
S | Ano | Ano | Ne | Ano | Ne | Ne |
ŠEST | Ano | Ano | Ne | Ne | Ne | Ne |
X | Ano | Ne | Ne | Ne | Ne | Ne |
Podle zamykacího protokolu a matice kompatibility, pokud existuje transakce drží uzel v režimu S, žádné jiné transakce nemohly uzamknout žádného předka v režimu X.
Viz také
Reference
- ^ Jim Gray; Raymond A. Lorie; G. R. Putzolu; Iriving L. Traiger (1976). "Granularita zámků a stupně konzistence ve sdílené databázi". Technická zpráva IBM. IBM. CiteSeerX 10.1.1.92.8248.CS1 maint: více jmen: seznam autorů (odkaz)