Documente Academic
Documente Profesional
Documente Cultură
Atomicitatea tranzacţiilor
Mitică Craus
1/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
Cuprins
Introducere
Proprietăţile unei tranzacţii
Programarea tranzacţiilor
Tranzacţii distribuite
Algoritmul Two-Phase Commit
Pseudocod
Tipuri de erori posibile
Soluţii de rezolvare a erorilor
Bibliografie
2/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
Introducere
3/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
4/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
Programarea tranzacţiilor
• Tranzact, iile sunt programate ca thread-uri sau procese. Aceasta asigură izolarea
instant, elor tranzact, iilor.
• Întreruperea unei tranzacţii trebuie să fie urmată de restabilirea stării anterioare
startului tranzacţiei.
• O tranzact, ie poate include alte tranzact, ii, dar două tranzact, ii nu pot fi imbricate.
• Exemplu:
• Cos, ul de cumpărături online cont, ine mai multe articole.
• Fiecare articole este obiectul unei tranzact, ii.
• Cos, ul este la rândul său prelucrat printr-o tranzact, ie.
• Tehnici de implementare:
• Utilizarea unor instrumente de memorare sigură, durabilă şi stabilă;
• Fişiere ”log”: aici sunt ı̂nregistrate act, iunile ı̂nainte de a fi realizate (”comitting”).
• Definirea, implementarea şi utilizarea unor protocoale de sincronizare.
5/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
Tranzacţii distribuite
6/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
7/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
Premise:
• Unitatea pj , j ∈ {0, 1, . . . , n − 1}, j 6= i, participă la efectuarea tranzacţiei, după ce a
participat la alegerea coordonatorului.
• Unitatea pj dispune de un fis, ier log local.
8/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
• La coordonator:
• defectarea sa;
• blocare ı̂n stare de aşteptare (Wait state): există cel puţin un participant care nu
răspunde la Vote Request(T ).
• La participant:
• defectarea sa;
• blocare ı̂n stare ”gata de execuţie a tranzacţiei” (Ready state): nu primeşte nici unul
din mesajele Global Abort(T ) sau Global Commit(T ).
9/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
10/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
11/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
12/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
Participantul se defectează
13/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
14/ 15
Introducere Tranzacţii distribuite Algoritmul Two-Phase Commit Bibliografie
Bibliografie
15/ 15