Forrangsgraf - Precedence graph
En forrang graf , også kaldet konflikt graf og serializability graf , anvendes i forbindelse med concurrency kontrol i databaser .
Forrangsgrafen for en tidsplan S indeholder:
- En knude for hver begået transaktion i S
- En bue fra T jeg til T j , hvis en handling af T I går forud og konflikter med en af T j 's handlinger. Det vil sige, at handlingerne hører til forskellige transaktioner, mindst en af handlingerne er en skrivehandling, og handlingerne får adgang til det samme objekt (læs eller skriv).
Eksempler på prioritetsgraf
Eksempel 1
Eksempel 2
En forrangsgraf over tidsplan D med 3 transaktioner. Da der er en cyklus (af længde 2; med to kanter) gennem de forpligtede transaktioner T1 og T2, er denne tidsplan (historik) ikke konfliktserierbar . Bemærk, at forpligtelsen til Transaktion 2 ikke har nogen betydning for oprettelsen af en forrangsgraf.
Afprøvning af serialisering med prioritetsgraf
Algoritme til test af konfliktserialisering af en plan S sammen med et eksempel på en tidsplan.
- eller
- For hver transaktion Tx, der deltager i tidsplan S, skal du oprette en node mærket Ti i prioritetsgrafen. Således forrang graf indeholder T 1 , T 2 , T 3 .
- I hvert tilfælde i S hvor T j eksekverer en read_item (X) efter T i udfører en write_item (X), oprette en kant (T jeg → T j ) i forrang grafen. Dette forekommer intetsteds i ovenstående eksempel, da der ikke læses efter skrivning.
- I hvert tilfælde i S hvor T j eksekverer en write_item (X) efter T i udfører en read_item (X), oprette en kant (T jeg → T j ) i forrang grafen. Dette resulterer i en rettet kant fra T 1 til T 2 (som T 1 har R (A) før T 2 med W (A) ).
- I hvert tilfælde i S hvor T j eksekverer en write_item (X) efter T i udfører en write_item (X), oprette en kant (T jeg → T j ) i forrang grafen. Resulterer dette i rettede kanter fra T 2 til T 1 , T 2 til T 3 og T 1 til T 3 .
- Tidsplanen S kan serialiseres, hvis og kun hvis forrangsgrafen ikke har nogen cyklusser. Som T 1 og T 2 udgør en cyklus, ovenstående eksempel er ikke (konflikt) serializable.
Referencer
eksterne links
- Fundamentals of Database Systems, 5. udgave, brugen af forrangsgrafer, diskuteres i kapitel 17, da de vedrører test for konfliktserialiserbarhed .
- Abraham Silberschatz, Henry Korth og S. Sudarshan. 2005. Databasesystemkoncepter (5 udgaver), PP. 628-630. McGraw-Hill, Inc., New York, NY, USA.