+ All Categories
Home > Documents > Transakce

Transakce

Date post: 19-Jan-2016
Category:
Upload: chesna
View: 29 times
Download: 0 times
Share this document with a friend
Description:
Transakce. Roman Špánek TU v Liberci 5.1.2005. Transakce. Transakce = série příkazů čtení a zápisu do databáze A tomic C onsistency I solation D urability ACID property. Typy konfliktů. WR T1 R(A), T1 W(A), T2 R(A), T1 commit, T2 commit RW T1 R(A), T2 W(A), T1 R(B), T1 R(A) - PowerPoint PPT Presentation
17
Transakce Roman Špánek TU v Liberci 5.1.2005
Transcript
Page 1: Transakce

Transakce

Roman ŠpánekTU v Liberci5.1.2005

Page 2: Transakce

Transakce

Transakce = série příkazů čtení a zápisu do databáze

AAtomic CConsistency IIsolation DDurability ACID property

Page 3: Transakce

Typy konfliktů

WR T1 R(A), T1 W(A), T2 R(A), T1 commit, T2 commit

RW T1 R(A), T2 W(A), T1 R(B), T1 R(A)

WW (blind write) T1 R(A), T1 W(A), T2 W(A), T1 commit, T2 commit

Page 4: Transakce

Concurrency Control

Lock ManagementLock Table

Počet T mající zámek na objektu Typ zámku (S,X) Pointer do řady čekatelů na zámek

Transaction table Popis pro kažkou T Ukazatel do seznamu zámků

Page 5: Transakce

Concurrency Control

2PL (Two-Phase Locking) a Strict 2PL Přidělování sdílených zámků Atomicita zamykání Lock Upgrade

Page 6: Transakce

DeadLock

Prevence (pomocí priorit T) Wait-Die Wound-Die

Detekce Wait-For Graph Time-out

Prevence x Detekce Kterou T abortovat

T1 T2

T3T4

T1 T2 T3 T4

S(A)

R(A)

X(B)

W(B)

S(B)

S(C)

R(C)

X(C)

X(B)

X(A)

Page 7: Transakce

Dynamické databáze

Phantom problem Index LockingT musí projít všechny stránky a zamknoutB+ stromyMultiple-Granularity Locking

Soubor->Stránka->Záznam

Page 8: Transakce

Concurrency without Locking

Optimistic Concurrency Control Timestamp-Based C.C.

Čtení: If TS(T)<WTS(O) -> restart(T), TS++; If TS(T)>WTS(O) -> read(O),RTS(O)=RTS(O)||TS(T);

Zápis: If TS(T)<RTS(O) -> restart(T),konflikt If TS(T)<WTS(O) -> Thomas Write Rule || Abort(T); Else T Write(O), WTS(O)=TS(T);

Page 9: Transakce

Recovery

Atomicity and durability properties ARIES recovery algorithm

AnalýzaREDOUNDO

update:

T1 W(P5)

update:

T2 W(P3)

T2

commit

T2

end

update:

T3 W(P1)

update:

T3 W(P3)

CRASH,

RESTART

10 20 30 40 50 60

Page 10: Transakce

ARIES al. - principy

Write-ahead loggingNejdříve do logu (uložen na stabilním místě) a

pak změny zapsány do databáze Repeating history during redo

Návrat do stavu v jakém byla DB v době pádu Logging changes during undo

Pro případ opakovaného pádu

Page 11: Transakce

Log (žurnál)

Musí být zachován i při pádu (více kopií) Každý záznam má unikátní ID (LSN) Záznamy pro:

Update stránky, Commit, Abort, End, UNDO

Pomocí prevLSN, transID, type (typ záznamu) je „nalinkována“ minulost

prevLSN transID type pegeID length offset before after

Page 12: Transakce

Transakce v SQLTRANSACTION jméno_transakce

WHENEVER {ERROR|podmínka} ROLLBACK

příkazy

COMMIT END

Příkazy z množiny manipulačních

TRANSACTION dalsi_rok

WHENEVER ERROR ROLLBACK

UPDATE osoba

SET vek=vek+1

COMMIT END

Page 13: Transakce

Úvod – Mobilní databázový systém

Page 14: Transakce

Hlavní překážky a problémy

Nízká přenosová rychlost Ztráta spojení Omezená kapacita baterií Omezené (výpočetní, paměťové, …) prostředky Rychlá změna pozice MU (Hand-off) Omezený počet kanálů Bezpečnost

Page 15: Transakce

Správa dat Location Dependent Location Dependent

DataData LDD „Kde je nejbližší

restaurace?“ Odpověď zjevně závislá

na místě položení dotazu

Location Free DataLocation Free Data LFD

„Místo narození paní X?“

Odpověď nezávislá na místě položení dotazu

Page 16: Transakce

Mobilní transakce

MDS je dynamická varianta distribuovaného DS

Definice: Mobilní transakce je trojice <Fi, Li, FLMi> kde Fi je množina fragmentů, Li je množina lokací, a FLMi je množina zobrazení fragmentů.

Page 17: Transakce

Struktura sítě Hlavní problémy:

Bezpečnost Navázání komunikace Vytvoření skupiny

Ad-hoc mobilní sítě


Recommended