DBMS samtidighedskontrol: tidsstempel og låsebaserede protokoller

Hvad er samtidighedskontrol?

Samtidighedskontrol i Database Management System er en procedure til styring af samtidige operationer uden at komme i konflikt med hinanden. Det sikrer, at databasetransaktioner udføres samtidigt og nøjagtigt for at producere korrekte resultater uden at krænke dataintegriteten i den respektive database.

Samtidig adgang er ret let, hvis alle brugere kun læser data. Der er ingen måde, de kan forstyrre hinanden. Selvom for enhver praktisk database ville den have en blanding af LÆS- og SKRIV-operationer, og derfor er samtidigheden en udfordring.

DBMS Concurrency Control bruges til at løse sådanne konflikter, som for det meste opstår med et flerbrugersystem. Derfor er Concurrency Control det vigtigste element for korrekt funktion af et Database Management System, hvor to eller flere databasetransaktioner udføres samtidigt, som kræver adgang til de samme data.

Potentielle problemer med samtidighed

Her er nogle problemer, som du sandsynligvis vil stå over for, mens du bruger DBMS Concurrency Control-metoden:

  • Mistede opdateringer opstår, når flere transaktioner vælger den samme række og opdaterer rækken baseret på den valgte værdi
  • Uforpligtede afhængighedsproblemer opstår, når den anden transaktion vælger en række, som opdateres af en anden transaktion (beskidt læse)
  • Ikke-gentagelig læsning opstår, når en anden transaktion forsøger at få adgang til den samme række flere gange og læser forskellige data hver gang.
  • Forkert oversigtsproblem opstår, når en transaktion overtager værdien af ​​alle forekomster af et gentaget dataelement, og en anden transaktion opdaterer få forekomster af det specifikke dataelement. I den situation afspejler den resulterende oversigt ikke et korrekt resultat.

Hvorfor bruge samtidighedsmetoden?

Årsager til at bruge metoden til samtidighedskontrol er DBMS:

  • At anvende isolation gennem gensidig udelukkelse mellem modstridende transaktioner
  • At løse læs-skrive og skrive-skrive konfliktproblemer
  • At bevare databasens konsistens ved konstant at bevare udførelseshindringer
  • Systemet skal kontrollere interaktionen mellem de samtidige transaktioner. Denne kontrol opnås ved hjælp af samtidige kontrolordninger.
  • Samtidighedskontrol er med til at sikre serialisering

Eksempel

Antag, at to personer, der går til elektroniske kiosker på samme tid for at købe en biografbillet til den samme film og det samme tidspunkt.

Der er dog kun én plads tilbage til filmshowet i det pågældende teater. Uden samtidighedskontrol i DBMS er det muligt, at begge biografgængere ender med at købe en billet. Men samtidighedskontrolmetoden tillader ikke dette at ske. Begge biografgængere kan stadig få adgang til oplysninger skrevet i databasen med filmsæder. Men samtidighedskontrol giver kun en billet til køberen, der først har gennemført transaktionsprocessen.

Protokoller til samtidighedskontrol

Forskellige samtidighedskontrolprotokoller tilbyder forskellige fordele mellem mængden af ​​samtidighed, de tillader, og mængden af ​​overhead, som de pålægger. Følgende er samtidighedskontrolteknikkerne i DBMS:

  • Låsebaserede protokoller
  • Tofaset låseprotokol
  • Tidsstempelbaserede protokoller
  • Valideringsbaserede protokoller

Låsebaserede protokoller

Låsebaserede protokoller i DBMS er en mekanisme, hvor en transaktion ikke kan læse eller skrive dataene, før den får en passende lås. Låsebaserede protokoller hjælper med at eliminere samtidighedsproblemet i DBMS for samtidige transaktioner ved at låse eller isolere en bestemt transaktion til en enkelt bruger.

En lås er en datavariabel, som er knyttet til et dataelement. Denne lås betyder, at operationer, der kan udføres på dataelementet. Låse i DBMS hjælper med at synkronisere adgang til databaseelementerne ved samtidige transaktioner.

Alle låseanmodninger sendes til concurrency-control manageren. Transaktioner fortsætter først, når låseanmodningen er godkendt.

Binære låse: En binær lås på et dataelement kan enten låse eller ulåste tilstande.

Delt/eksklusiv: Denne type låsemekanisme adskiller låsene i DBMS baseret på deres anvendelser. Hvis en lås er erhvervet på et dataelement for at udføre en skriveoperation, kaldes det en eksklusiv lås.

1. Delt lås (S):

En delt lås kaldes også en skrivebeskyttet lås. Med den delte lås kan dataelementet deles mellem transaktioner. Dette skyldes, at du aldrig vil have tilladelse til at opdatere data på dataelementet.

Overvej for eksempel et tilfælde, hvor to transaktioner læser en persons kontosaldo. Det database vil lade dem læse ved at placere en delt lås. Men hvis en anden transaktion ønsker at opdatere den kontos saldo, forhindrer delt lås det, indtil læseprocessen er slut.

2. Eksklusiv lås (X):

Med den eksklusive lås kan et dataelement læses såvel som skrives. Dette er eksklusivt og kan ikke holdes samtidigt på det samme dataelement. X-lås anmodes om ved hjælp af lock-x instruktion. Transaktioner kan låse dataelementet op efter at have afsluttet 'skrive'-handlingen.

For eksempel når en transaktion skal opdatere en persons kontosaldo. Du kan tillade denne transaktion ved at placere X-lås på den. Derfor, når den anden transaktion ønsker at læse eller skrive, forhindrer eksklusiv lås denne operation.

3. Simplistisk låseprotokol

Denne type låsebaserede protokoller gør det muligt for transaktioner at opnå en lås på hvert objekt, før driften påbegyndes. Transaktioner kan låse dataelementet op efter at have afsluttet 'skrive'-handlingen.

4. Forudgående Låsning

Forudgående låseprotokol hjælper med at evaluere operationer og oprette en liste over nødvendige dataelementer, som er nødvendige for at starte en eksekveringsproces. I den situation, hvor alle låse er tildelt, udføres transaktionen. Derefter udløses alle låse, når alle dets operationer er overstået.

Sult

Sult er den situation, hvor en transaktion skal vente på ubestemt tid for at få en lås.

Følgende er årsagerne til sult:

  • Ved ventetid er ordningen for låste varer ikke forvaltet korrekt
  • I tilfælde af ressourcelækage
  • Den samme transaktion vælges som et offer gentagne gange

deadlock

Deadlock refererer til en specifik situation, hvor to eller flere processer venter på, at hinanden frigiver en ressource, eller mere end to processer venter på ressourcen i en cirkulær kæde.

Tofaset låseprotokol

Tofaset låseprotokol også kendt som 2PL-protokol er en metode til samtidighedskontrol i DBMS, der sikrer serialisering ved at anvende en lås på transaktionsdataene, som blokerer andre transaktioner for at få adgang til de samme data samtidigt. Two Phase Locking-protokol hjælper med at eliminere samtidighedsproblemet i DBMS.

Denne låseprotokol opdeler udførelsesfasen af ​​en transaktion i tre forskellige dele.

  • I den første fase, når transaktionen begynder at udføre, kræver den tilladelse til de låse, den har brug for.
  • Den anden del er, hvor transaktionen opnår alle låsene. Når en transaktion frigiver sin første lås, starter den tredje fase.
  • I denne tredje fase kan transaktionen ikke kræve nye låse. I stedet frigiver den kun de erhvervede låse.

Tofaset låseprotokol

To-faset låseprotokollen tillader hver transaktion at foretage en låse- eller oplåsningsanmodning i to trin:

  • Vækstfase: I denne fase kan transaktionen opnå låse, men muligvis ikke frigive nogen låse.
  • Krympende fase: I denne fase kan en transaktion frigive låse, men ikke opnå nogen ny lås

Det er rigtigt, at 2PL-protokollen tilbyder serialisering. Det sikrer dog ikke, at der ikke opstår dødvande.

I det ovenstående diagram kan du se, at lokale og globale deadlock-detektorer søger efter deadlocks og løser dem ved at genoptage transaktioner til deres oprindelige tilstande.

Streng to-faset låsemetode

Strict-Tofaset låsesystem ligner næsten 2PL. Den eneste forskel er, at Strict-2PL aldrig udløser en lås efter brug. Den holder alle låsene indtil commit-punktet og frigiver alle låsene på én gang, når processen er slut.

Centraliseret 2PL

I Centralized 2 PL er et enkelt sted ansvarlig for låsestyringsprocessen. Den har kun én låsemanager for hele DBMS.

Primær kopi 2PL

Primær kopi 2PL-mekanisme, mange låseadministratorer er distribueret til forskellige steder. Derefter er en bestemt låseadministrator ansvarlig for at administrere låsen for et sæt dataelementer. Når den primære kopi er blevet opdateret, udbredes ændringen til slaverne.

Distribueret 2PL

I denne form for to-faset låsemekanisme er låseadministratorer distribueret til alle steder. De er ansvarlige for at administrere låse til data på det pågældende websted. Hvis ingen data replikeres, svarer det til primær kopi 2PL. Kommunikationsomkostninger ved distribueret 2PL er ret højere end primær kopi 2PL

Tidsstempelbaserede protokoller

Tidsstempel baseret protokol i DBMS er en algoritme, der bruger System Time eller Logical Counter som et tidsstempel til at serialisere udførelsen af ​​samtidige transaktioner. Den tidsstempelbaserede protokol sikrer, at alle modstridende læse- og skrivehandlinger udføres i en tidsstempelrækkefølge.

Den ældre transaktion prioriteres altid i denne metode. Det bruger systemtid til at bestemme tidsstemplet for transaktionen. Dette er den mest almindeligt anvendte samtidighedsprotokol.

Låsebaserede protokoller hjælper dig med at administrere rækkefølgen mellem de modstridende transaktioner, hvornår de skal udføres. Tidsstempelbaserede protokoller håndterer konflikter, så snart en operation er oprettet.

Eksempel:

Suppose there are there transactions T1, T2, and T3. 
T1 has entered the system at time 0010 
T2 has entered the system at 0020
T3 has entered the system at 0030
Priority will be given to transaction T1, then transaction T2 and lastly Transaction T3.

Fordele:

  • Skemaer kan serialiseres ligesom 2PL-protokoller
  • Ingen ventetid på transaktionen, hvilket eliminerer muligheden for dødvande!

Ulemper:

Sult er muligt, hvis den samme transaktion genstartes og konstant afbrydes

Valideringsbaseret protokol

Valideringsbaseret protokol i DBMS også kendt som Optimistic Concurrency Control Technique er en metode til at undgå samtidighed i transaktioner. I denne protokol opdateres de lokale kopier af transaktionsdataene i stedet for selve dataene, hvilket resulterer i mindre interferens under udførelsen af ​​transaktionen.

Den valideringsbaserede protokol udføres i følgende tre faser:

  1. Læs fase
  2. Valideringsfase
  3. Skriv fase

Læs fase

I læsefasen kan dataværdierne fra databasen læses af en transaktion, men skriveoperationen eller opdateringerne anvendes kun på de lokale datakopier, ikke den faktiske database.

Valideringsfase

I valideringsfasen kontrolleres dataene for at sikre, at der ikke er nogen krænkelse af serialiseringsevnen, mens transaktionsopdateringerne anvendes til databasen.

Skriv fase

I skrivefasen anvendes opdateringerne til databasen, hvis valideringen lykkes, ellers; opdateringerne anvendes ikke, og transaktionen rulles tilbage.

Karakteristika for god samtidighedsprotokol

En ideel samtidighedskontrol DBMS-mekanisme har følgende mål:

  • Skal være modstandsdygtig over for websteds- og kommunikationsfejl.
  • Det tillader parallel udførelse af transaktioner for at opnå maksimal samtidighed.
  • Dens lagringsmekanismer og beregningsmetoder bør være beskedne for at minimere overhead.
  • Det skal håndhæve nogle begrænsninger på strukturen af ​​atomare handlinger af transaktioner.

Resumé

  • Samtidighedskontrol er proceduren i DBMS til styring af samtidige operationer uden at komme i konflikt med hinanden.
  • Mistede opdateringer, beskidt læsning, ikke-gentagelig læsning og ukorrekt resumé er problemer, der står over for på grund af manglende samtidighedskontrol.
  • Låsebaseret, tofaset, tidsstempelbaseret, valideringsbaseret er typer af samtidighedshåndteringsprotokoller
  • Låsen kan være delt (S) eller eksklusiv (X)
  • To-faset låseprotokol, som også er kendt som en 2PL-protokol, skal have en lås, efter at den frigiver en af ​​dens låse. Den har 2 faser, der vokser og krymper.
  • Den tidsstempelbaserede algoritme bruger et tidsstempel til at serialisere udførelsen af ​​samtidige transaktioner. Protokollen bruger Systemtid eller logisk tæller som et tidsstempel.