Skip to main content

Hva er samtidig kontroll?

I programmering av datahåndtering er samtidighetskontroll en mekanisme designet for å sikre at nøyaktige resultater genereres av samtidig operasjoner.Disse resultatene må også oppnås på en riktig måte.Samtidelseskontroll sees ofte i databaser der det er en cache av søkbar informasjon for brukere å få.Hva dette betyr er at data som tar kontakt med sett med transaksjoner vil være i en viss tilstand der resultatene er oppnåelige hvis alle transaksjoner utfører serielt og i en bestemt rekkefølge.Noen ganger er disse dataene ugyldige som et resultat av at de blir endret av to transaksjoner, samtidig.

Det er flere måter å sikre at transaksjoner utfører etter hverandre, inkludert bruk av gjensidig ekskludering i tillegg til å lage en ressurs som bestemmer hvilke transaksjoner som haradgang.Dette er imidlertid overkill, og vil ikke tillate en programmerer å dra nytte av samtidighetskontroll i et distribuert system.Samtidelseskontroll tillater samtidig utførelse av flere transaksjoner mens du holder disse transaksjonene borte fra hverandre, og sikrer lineariserbarhet.En måte å implementere samtidig kontroll er bruken av en eksklusiv lås på en bestemt ressurs for utførelser av serielle transaksjoner som deler ressurser.Transaksjoner vil låse et objekt som er ment å bli brukt, og hvis en annen transaksjon gjør en forespørsel om objektet som er låst, må den transaksjonen vente på at objektet skal låse opp.

Implementering av denne metoden i distribuerte systemer involverer låsadministratorer og mdash;servere som utsteder ressurslåser.Dette ligner veldig på servere for sentraliserte gjensidige unntak, der klienter kan be om låser og sende meldinger for utgivelse av låser på en bestemt ressurs.Bevaring av seriell utførelse er imidlertid fortsatt nødvendig for samtidig kontroll.Hvis to separate transaksjoner får tilgang til et lignende objektsett, må resultatene være like, og som om disse transaksjonene ble utført i en bestemt rekkefølge.For å sikre ordre om tilgang til en ressurs, introduseres to-fase låsing, noe som betyr at transaksjoner ikke har tillatt nye låser ved frigjøring av en egen lås.

I to-fase låsing for samtidighetskontroll, anses dens innledende fase som vokser den voksendeFase, der transaksjonen skaffer seg den nødvendige låsen.Den neste fasen anses som en krympende fase, der transaksjonen har sine låser frigitt.Det er problemer med denne typen låsing.Hvis transaksjoner aborterer, kan andre transaksjoner bruke data fra objekter endret og låst opp av aborterte transaksjoner.Dette vil føre til at andre transaksjoner blir abortert.