Cuprins:
- Definiție - Ce înseamnă angajamentul în două faze (2PC)?
- Techopedia explică angajamentul în două faze (2PC)
Definiție - Ce înseamnă angajamentul în două faze (2PC)?
Un angajament în două faze este un protocol standardizat care asigură implementarea unui angajament de bază de date în situația în care o operațiune de angajare trebuie împărțită în două părți separate.
În gestionarea bazelor de date, salvarea modificărilor de date este cunoscută ca o angajare și anularea modificărilor este cunoscută sub numele de rollback. Ambele pot fi obținute cu ușurință folosind jurnalul de tranzacții atunci când este implicat un singur server, dar atunci când datele sunt răspândite pe servere diverse din punct de vedere geografic în calculul distribuit (adică, fiecare server fiind o entitate independentă cu înregistrări de jurnal separate), procesul poate deveni mai complicat. .
Techopedia explică angajamentul în două faze (2PC)
Un obiect special, cunoscut sub numele de coordonator, este necesar într-o tranzacție distribuită. După cum îi spune numele, coordonatorul organizează activități și sincronizare între serverele distribuite. Angajamentul în două faze este implementat după cum urmează:
Faza 1 - Fiecare server care trebuie să comită date își scrie înregistrările de date în jurnal. Dacă un server nu reușește, acesta răspunde cu un mesaj de eșec. Dacă are succes, serverul răspunde cu un mesaj OK.
Faza 2 - Această fază începe după ce toți participanții răspund OK. Apoi, coordonatorul trimite un semnal fiecărui server cu instrucțiuni de angajare. După comitere, fiecare scrie angajarea ca parte a înregistrării sale de jurnal pentru referință și trimite coordonatorului un mesaj că angajamentul său a fost implementat cu succes. Dacă un server nu reușește, coordonatorul trimite instrucțiuni tuturor serverelor pentru a returna tranzacția. După ce serverele se derulează, fiecare trimite feedback că acesta a fost finalizat.
