Vad är samtidighetskontroll?

I datahanteringsprogrammering är samtidighetskontroll en mekanism utformad för att säkerställa att exakta resultat genereras av samtidiga operationer. Dessa resultat måste också erhållas i rätt tid. Samtidskontroll ses ofta i databaser där det finns en cache med sökbar information för användare att få.

programmerare försöker utforma en databas på ett sådant sätt att viktiga transaktionernas effekt på delade data kommer att vara seriellt motsvarande. Vad detta betyder är att data som tar kontakt med uppsättningar transaktioner skulle vara i ett visst tillstånd där resultaten kan erhållas om alla transaktioner kör seriellt och i en viss ordning. Ibland är dessa uppgifter ogiltiga till följd av att de ändras av två transaktioner, samtidigt.

Det finns flera sätt att säkerställa att transaktioner genomför en efter en, inklusive användning av ömsesidig uteslutning samt att skapa en resurs som bestämmer vilka transaktioner som har tillgång. Detta är dock överdrivet ochTillåter inte en programmerare att dra nytta av samtidighetskontroll i ett distribuerat system. Samtidskontroll tillåter samtidigt genomförande av flera transaktioner samtidigt som dessa transaktioner håller bort från varandra, vilket säkerställer lineariserbarhet. Ett sätt att implementera samtidighetskontroll är användningen av ett exklusivt lås på en viss resurs för seriekörningar som delar resurser. Transaktioner kommer att låsa ett objekt som är avsett att användas, och om någon annan transaktion gör en begäran om objektet som är låst måste den transaktionen vänta på att objektet låses upp.

Implementering av denna metod i distribuerade system involverar låshanterare - servrar som utfärdar resurslås. Detta är mycket lik servrar för centraliserade ömsesidiga undantag, där klienter kan begära lås och skicka meddelanden för att släppa lås på en viss resurs. Bevarande av seriell exeCution är dock fortfarande nödvändig för samtidighetskontroll. Om två separata transaktioner har tillgång till en liknande objektuppsättning måste resultaten vara liknande och som om dessa transaktioner genomfördes i en viss ordning. För att säkerställa order om tillgång till en resurs införs tvåfaslåsning, vilket innebär att transaktioner inte är tillåtna nya lås vid frisläppandet av ett separat lås.

I tvåfaslåsning för samtidskontroll anses dess initiala fas den växande fasen, där transaktionen förvärvar sitt nödvändiga lås. Nästa fas anses vara en krympningsfas, där transaktionen har släppt sina lås. Det finns problem med denna typ av låsning. Om transaktioner avbryter kan andra transaktioner använda data från objekt som modifieras och låsas upp av avbröt transaktioner. Detta skulle resultera i att andra transaktioner avbryts.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?