Databasteknik II: Transaktioner och lås

Mål

Bakgrund

Många databashanterare använder olika typ av lås för att hålla samtidiga transaktioner isolerade från varandra (I:et i "ACID-transaktioner"). Med programmet Locksim kan man simulera transaktioner som läser och skriver data i en databas, antingen med eller utan lås. Om man använder lås kan man antingen använda enkla binära lås, eller läs/skriv-lås.

Förberedelser

  1. Läs lämpligt kursmaterial för att förstå de olika typerna av lås och de olika låsalgoritmerna.
  2. Man behöver tillgång till en programmeringsomgivning, där man kan kompilera och köra programmet Locksim. Visual Studio 2013 på Windows eller GCC på Linux bör fungera utan problem.
  3. Ladda ner källkoden till programmet Locksim och kompilera programmet.
  4. Inmatningen till Locksim är en fil med ett "scenario". Ett scenario består av en databas och ett antal transaktioner som läser, skriver, låser och låser upp data i databasen. I beskrivningen av Locksim finns två exempel: dels (1) att Lotta och Kalle ger bort sina pengar till varann utan lås, och dels (2) att Lotta och Kalle ger bort sina pengar till varann med tvåfaslåsning med läs/skriv-lås. Kontrollera att du får samma resultat som står i beskrivningen. (Locksim slumpar ordningen som transaktionerna körs i, så enskilda körningar kan ge olika resultat.)

Uppgiften

Här är några fel som kan uppstå när två eller flera transaktioner arbetar med samma data samtidigt: Och om man försöker förhindra dessa problem genom att låsa data, kan man få: Skriv nu några scenarier och provkör i Locksim:
  1. Gör först scenarier, utan lås, som demonstrerar vart och ett av isoleringsproblemen.
  2. Komplettera nu de scenarierna med lås, så att problemen förhindras.
  3. Visa i minst ett fall att det inte räcker att transaktionen låser data precis när den jobbar med det, utan man måste använda tvåfaslåsning.
  4. Visa i minst ett fall att man kan få deadlock. Försök minska risken för deadlock.

Redovisning

Visa dina låsscenarior för läraren, demonstrera hur de fungerar i Locksim, och diskutera,
eller,
skicka e-post med fullständiga och tydliga beskrivningar av hur alltihop fungerar.

Om du skickar e-post med bilagor:
Vi har haft problem med överambitiösa virusfilter, som utan att meddela det kastar bort mail med bilagor! Det gäller särskilt Microsoft-drivna e-posttjänster som @hotmail.com och @live.com. För att överlista dem kan man döpa om Zip-filen från nånting.zip till exempelvis nånting.info (inte nånting.txt). Om du inte får svar så skicka gärna ett extra brev (utan bilaga!) för att kontrollera om det första brevet kom fram.

Arbeta i grupper om en eller två studenter. I undantagsfall kan man arbeta i grupper om tre, men fråga läraren först.

Det är tillåtet att samarbeta i större grupper än så, men varje grupp om 1-3 studenter måste fortfarande redovisa separat, och det måste också tydligt framgå (i rapporten eller på annat sätt) vilka som deltog i samarbetet.


Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), 17 december 2015