Karlstads Universitet, Datavetenskap 1

Relevanta dokument
Databaser design och programmering Säkerhetsproblem Databashanteraren SQL-injektion

Databaser - Design och programmering. Säkerhetsproblem. SQL-injektion. Databashanteraren. Transaktion. Exempel. Transaktionshantering och säkerhet

Transaktioner och samtidighet

Föreläsning 7: Transaktioner

Databaser design och programmering. Transaktionshantering och säkerhet säkerhetsproblem fleranvändarproblem transaktioner låsning

Relationsdatabashanteringssystem RDBHS

Transaktionshantering med samtidighetskontroll i databaser

ÖVERVAKNING AV SQL SERVER

Karlstads Universitet, Datavetenskap 1

Deadlocks. detektera och undvik

Deadlock. Deadlock uppstår när två eller flera processer hamnar i ett cirkelberoende. Resurs 1. Processen vill ha resursen. Processen äger resursen

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

Alternativ till låsning. Optimistik approach TimeStamp

Databaser & databasdesign. Personuppgiftslagen, säkerhet och transaktioner.

Objektorienterad Programkonstruktion. Föreläsning dec 2015

Karlstads Universitet, Datavetenskap 1

Synkronisering. Föreläsning 8

Transaktioner. 1. Transaktioner 2. Samtidighet ( concurrency ) och lås. 3. Deadlock. Kap. 17. Informatik B: Databashantering med SQL Server

Final Exam DATABASE TECHNOLOGY - 1DL300

Karlstads Universitet, Datavetenskap 1

Mekanismer. (implementation)

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

Tentamen DATABASE TECHNOLOGY - 1MB025

Samtidighetskontroll i applikationer utvecklade med ASP.NET Web Forms och traditionell ADO.NET

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Tentamen, Distribuerade System/Programvaruarkitektur

Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

Operativsystem. Hierarkin för hårdvara läses nerifrån

Karlstads Universitet, Datavetenskap 1

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

I Microsoft Windows-miljö (vilken är min primära plattform för systemprogramutveckling) används följande termer:

Karlstads Universitet, Datavetenskap 1

Databasteknik NADA, KTH & SU

Distribuerade system och realtidssystem Rapport - Designförslag

Tentamen i Databasteknik

Tentamen Lösningar EDA698 Realtidssystem

Tentamen DATABASTEKNIK - 1DL116, 1MB025, 1DL124

Tentamen på kursen Distribuerade system. Lycka till!

Föreläsning 6 Databaser och säkerhet

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4

Exam Concurrent and Real-Time Programming

Hantering av hazards i pipelines

Kan vi lita på Internettekniken?

Tentamen DATABASTEKNIK - 1DL116

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

Uppgift 1. (a) Ange tre orsaker hur felaktigheter i en databas kan uppsta. Till varje av dem, ange en lamplig metod som anvands som atgard mot dessa.

Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

Tentamen i. Databasteknik

Graf CST-NYH 4 1,2. Stockholm C CST. Stockholms södra SST. Årstabron Årstaberg ÅBE1 ÅBE. Älvsjö HÖN. Högdalen. Farsta Strand FAS.

syftar till att förbättra prestanda. Den kan avse något eller flera av följande mått.

Tentamen Datastrukturer (DAT036)

Kapitel Tabell & graf

Concurrency Saker händer samtidigt. Process En instans av ett program

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

ALGORITMER, OPTIMERING OCH LABYRINTER

Grundläggande Idéer Algoritmens komponenter Numerisk optimering Genetisk Programmering. Genetiska Algoritmer

Support Manual HoistLocatel Electronic Locks

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

1.1 Runnable och Thread

OC&locale=se_SE (Info taget )

Tentamen. Datorteknik och realtidssystem

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Cache coherence hos multicoreprocessorer

Aktivitetsschemaläggning för flerkärninga processorer

TENTAMEN TDDB77 Databaser och Bioinformatik 19 april 2002, kl 14-18

Realtidssystem. - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Pipelining i Intel 80486

Inbyggda Realtidsdatabaser för Motorstyrning

Modbus över Ethernet. WAGO Contact SA TSS STR

Kapitel 22: Överföring av variabler och uppgradering 365. I fönstret VAR-LINK visas en lista med definierade variabler, Flashprogram

DIG IN TO Administration av nätverk- och serverutrustning

Grundläggande datavetenskap, 4p

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Tentamen Nätverksprogrammering Lösningsförslag

artnr. C4202 (infällt) & C4203 (utanpåliggande) ATLAS KODLÅS RUGGAD utanpåliggande

Infobric AB CONTAINER. Felsökningsguide

**** Meddelande om återkallning ****

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop

Språket Python - Del 2 Grundkurs i programmering med Python

Bruksanvisning Konvektorelement 99106

Tentamen i Databasteknik

K44 Duo. Installation & User Manual EN SV DE FR DA FI NO

Rättningsmall tenta den 25e oktober Uppgift 1. Uppgift 2. se slides

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

Cluster VMCLUSTERcpuTotalmhzAverage CPU Mhz

Anna Brunström. Hur kan man minska fördröjningarna över Internet? Karlstad University Computer Science

Tenta i Digitalteknik

Den intelligenta dammsugaren

Transport Layer. Transport Layer. F9 Meddelandesändning med UDP EDA095 Nätverksprogrammering. Java och UDP TCP/UDP

Magelis XBT. Magelis XBT operatörspaneler. Funktioner i Dialouge Table

MESI i Intel Core 2 Duo

Transkript:

DAV B04 - Databasteknik KaU - Datavetenskap - DAV B04 - MGö 193 Tekniker för concurrency control Olika slags lås (locks) Tidsstämpling (timestamps) KaU - Datavetenskap - DAV B04 - MGö 194 Binära lås 2 tillstånd, låst (locked) och olåst (unlocked) Ett lås till varje databasvariabel (post, item) X Växlar tillstånd med lock_item(x) och unlock_item(x) Viktigt att det är atomära (odelbara) operationer Om låset redan är låst läggs man i väntekö KaU - Datavetenskap - DAV B04 - MGö 195 Karlstads Universitet, Datavetenskap 1

Regler för lås lock_item(x) innan någon read_item(x) eller write_item(x) utförs i T unlock_item(x) efter att alla read_item(x) eller write_item(x) utförts i T KaU - Datavetenskap - DAV B04 - MGö 196 Regler för lås lock_item(x) om den redan har ett lås på X unlock_item(x) om den inte har ett lås på X KaU - Datavetenskap - DAV B04 - MGö 197 Regler för lås Reglerna garanterar att högst en transaktion i taget kan låsa en variabel! I databashanteraren finns en tabell där man för varje lås anger < data item, LOCK, transaktion som håller låset > KaU - Datavetenskap - DAV B04 - MGö 198 Karlstads Universitet, Datavetenskap 2

Delade/exklusiva lås Shared/Exclusive (or Read/Write) Locks Läsning av samma datapost kan tillåtas för flera transaktioner, låset kan delas, en räknare vet hur många transaktioner som låst (läser) samma post 3 tillstånd, read-locked, write-locked och unlocked KaU - Datavetenskap - DAV B04 - MGö 199 Regler för delade/exklusiva lås read_lock(x) eller write_lock(x) innan någon read_item(x) utförs i T write_lock(x) innan någon write_item(x) utförs i T unlock(x) efter att alla read_item(x) och write_item(x) är utförda KaU - Datavetenskap - DAV B04 - MGö 200 Regler för delade/exklusiva lås read_lock(x) om den redan har ett lås på X write_lock(x) om den redan har ett lås på X unlock(x) om den inte har ett lås på X KaU - Datavetenskap - DAV B04 - MGö 201 Karlstads Universitet, Datavetenskap 3

Two-phase locking protocol Alla låsningar (read_lock och write_lock) föregår första unlock i transaktionen Garanterar serialiserbarhet Dock kan deadlock inträffa KaU - Datavetenskap - DAV B04 - MGö 202 Deadlock Prevention Protocols Varje transaktion förses med tidstämpel TS(T) Antag att T i försöker låsa X som redan är låst av T j Nu finns två varianter, i båda dessa varianter undviks deadlock wait-die wound-wait KaU - Datavetenskap - DAV B04 - MGö 203 wait-die Om TS(T i ) < TS(T j ), (dvs. T i är äldre än T j ) så får T i vänta annars (dvs. T i är yngre än T j ) avbryts T i (abort) och återstartas senare med samma tidstämpel KaU - Datavetenskap - DAV B04 - MGö 204 Karlstads Universitet, Datavetenskap 4

wound-wait Om TS(T i ) < TS(T j ), (dvs. T i är äldre än T j ) så avbryt T j (T i wounds T j ) och återstarta senare med samma tidstämpel annars (dvs. T i är yngre än T j ) låt T i vänta KaU - Datavetenskap - DAV B04 - MGö 205 Utan tidstämpel No waiting Om transactionen inte kan få ett lås avbryts den omedelbart och återstartas efter viss fördröjning utan att kontrollera om deadlock kommer att uppstå Cautious waiting Antag att T i försöker låsa X men att X redan är låst av T j Om T j inte är blockerad (inte väntar på någon annan låst variabel) så blockeras T i och får vänta annars avbryts T i KaU - Datavetenskap - DAV B04 - MGö 206 Deadlock Detection and Timeouts Upptäck deadlock genom att konstruera waitfor graph Deadlock omm det finns cykler i grafen Lösningar victim selection timeouts KaU - Datavetenskap - DAV B04 - MGö 207 Karlstads Universitet, Datavetenskap 5

Victim selection Någon måste offras Undvik transaktionen som gått länge och gjort många uppdateringar KaU - Datavetenskap - DAV B04 - MGö 208 Timeouts Avbryt transaktionen om den väntat för länge KaU - Datavetenskap - DAV B04 - MGö 209 Starvation En transaktion får vänta orimligt länge på grund av låg prioritet eller annat Lösningar FCFS : first-come-first-serve i väntekö Prioritet : ge högre prioritet åt den som väntat länge KaU - Datavetenskap - DAV B04 - MGö 210 Karlstads Universitet, Datavetenskap 6