Transakce Roman Špánek TU v Liberci
Transakce Transakce = série příkazů čtení a zápisu do databáze A Atomic C Consistency I Isolation D Durability 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) WW (blind write) T1 R(A), T1 W(A), T2 W(A), T1 commit, T2 commit
Concurrency Control Lock Management Lock 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ů
Concurrency Control 2PL (Two-Phase Locking) a Strict 2PL Přidělování sdílených zámků Atomicita zamykání Lock Upgrade
DeadLock Prevence (pomocí priorit T) Wait-Die Wound-Die Detekce Wait-For Graph Time-out Prevence x Detekce Kterou T abortovat T1 T2 T3 T4 T1T2T3T4 S(A) R(A) X(B) W(B) S(B) S(C) R(C) X(C) X(B) X(A)
Dynamické databáze Phantom problem Index Locking T musí projít všechny stránky a zamknout B+ stromy Multiple-Granularity Locking Soubor->Stránka->Záznam
Concurrency without Locking Optimistic Concurrency Control Timestamp-Based C.C. Čtení: If TS(T) restart(T), TS++; If TS(T)>WTS(O) -> read(O),RTS(O)=RTS(O)||TS(T); Zápis: If TS(T) restart(T),konflikt If TS(T) Thomas Write Rule || Abort(T); Else T Write(O), WTS(O)=TS(T);
Recovery Atomicity and durability properties ARIES recovery algorithm Analýza REDO UNDO update: T1 W(P5) update: T2 W(P3) T2 commit T2 end update: T3 W(P1) update: T3 W(P3) CRASH, RESTART
ARIES al. - principy Write-ahead logging Nejdří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
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 prevLSNtransIDtypepegeIDlengthoffsetbeforeafter
Transakce v SQL TRANSACTION 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
Úvod – Mobilní databázový systém
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
Správa dat Location Dependent Data Location Dependent Data LDD „Kde je nejbližší restaurace?“ Odpověď zjevně závislá na místě položení dotazu Location Free Data Location Free Data LFD „Místo narození paní X?“ Odpověď nezávislá na místě položení dotazu
Mobilní transakce MDS je dynamická varianta distribuovaného DS Definice: Mobilní transakce je trojice kde Fi je množina fragmentů, Li je množina lokací, a FLMi je množina zobrazení fragmentů.
Struktura sítě Hlavní problémy: Bezpečnost Navázání komunikace Vytvoření skupiny Ad-hoc mobilní sítě