Protocoale de blocare in sist distribuite
1. Schema Noureplicated
- fiecare site are un manager local de lock a carui fct este de a
administra cererile de lock si unlock ptr data item-urile care sunt blocate in ac
site, cand o tranzactie doreste sa blocheze data item Q de la site-ul S; trimite un
mesaj managerului de blocare al site-ului Si cerandu-i o blocare. Daca Q este
blocata cererea este intarziata pana se poate. Odata ce s-a det ca cererea de
blocare poate fi indepl manager-ul lock trimite un mesaj inapoi indicand ca
cererea de blocare a fost indepl.
- ac schema este implementata simplu;
2. Abordarea cu un singur coordinator
- sist mentine un singur coord loch care este intr-un sg site, Si.
- toate cererile de lock si unlock sunt facute catre site-ul Si;
- tranzactia poate citi data item-ul de pe oricare site unde se afla
data item-ul; dar scrierea se face cu implicarea tuturor site-urilor pe care se afla
data item-ul;
Avantaje : - implementarea simpla
- rezolvarea simpla a deadlock-urilor
Dezavantaje : - Bottleneck
- deoarece cererile trebuie procesate in Si ac poate
deveni bottleneck
- vulnerabilitatea;
3. Protocolul Majority
4. Protocolul Biased
5. Primary Copy
Asigurarea atomicitatii tranzactiilor in sist distribuite
- este mai complicat in sist distribuite sa se
asigure atomicitatea unei tranzactii deoarece
mai multe site-uri pot participa la exec unei sg
tranzactii. Esecul unui site sau esecul unui link
de comunicare care conecteaza site-urile poate
rezulta intr-o comportare eronata;
Ptr a asigura ca executia mai multor tranzactii in sist distribuit asigura
atomicitatea s-a introdus coordonatorul de tranzactii.
Fiecare site are propriul coord de tranzactii local care este responsabil
cu coordonarea executiei tuturor transact in ac site. Ptr fiecare tranzactie, coord este
responsabil ptr urmatoarele :
- sa porneasca executia tranzactiei
- impartirea tranzactiilor intr-un nr de
subtranzactii sis a le distribuie site-urilor ptr
executie
- coordonarea terminarii tranzactiilor
- ptr ca atomicitatea sa fie asigurata , toate site-urile in care o
tranzactie T executa trebuie sa se puna de accord la rezultatul final al exec.
- T trebuie ori sa exec commit la toate site-urile ori sa faca abort
- ptr a asigura ac proprietate, coord de tranzactii al lui T trebuie sa
exec un protocol commit
- printer cele mai simple protocoale este two-phase commit ( 2PC )
protocol;
Implementarea excluziunii mutuale in sist distribuite
- se realizeaza cu dif alg
- presupunem ca exista in sist n procese, fiecaruia ii corespunde cate un procesor;
1. Abordarea centralizata
- in ac abordare un process din sist este ales sa coordoneze intrarea in sect critica;
- fiecare process care vrea sa invoce excluziunea mutuala trimite un mesaj cerere
coordonatorului;
- cand proc receptioneaza mesajul reply de la coordinator poate sa intre in sect sa critica
- dup ace iese din sect critica procesul trimite un mesaj release coordonatorului si trece la exec
sa
- cand primeste un mesaj request, coord verifica, ca daca alt process este in sect sa critica,
daca nici un alt process nu este in sect sa critica, coord trimite inapoi un mesaj reply. Altfel
cererea este pusa in asteptare. Cand coord primeste un mesaj de release el muta o cerere din
coada si ii trimite un mesaj reply.
- daca coord da gres atunci alt nou process trebuie sa ii ia locul; ac nou process trebuie sa
puna laolalta toate procesele din sist ptr a reconstitui coada de cereri; odata ce coada a fost
reconstituita se poate relua lucrul;
2. Abordarea Fully Distributed
- ac sol este mai complicate;
- cand un process Pi vrea sa intre in sect sa critica genereaza un nou timestamps, TS , si
trimite mesaje request (Pi, TS ) tuturor proceselor din sist (chiar si lui)
- cand primeste un mesaj de cerere, un process poate trimite inapoi reply sau poate amana sa
trimita reply inapoi (deoarece poate fi el in sect sa critica).
- un process care a primit un mesaj reply de la toate procesele din sist poate intra in sect sa
critica punand in coada cererile sosite si amanandu-le. Dupa ce a iesit din sect critica, procesul
trimite mesajul reply tuturor cererilor amanate;
- decizia daca un Pi ii da un mesaj reply unei request (Pj, TS ) sau o amana, sta in 3 factori:
a) daca proc Pi este in sect sa critica, amana pe Pj
b) daca Pi nu vrea sa intre in sect sa critica atunci trimite reply imediat lui Pj.
c) daca Pi vrea sa intre in sect sa critica dar nu a intrat inca se compara timestamp-urile.
Daca timestampul lui Pi > Pj atunci trimite reply, altfel este amanat Pj.
- ac schema cere implicarea tuturor proc din sist
- ac abordare are 2 dezavantaje:
a) - proc trebuie sa stie identitatea tuturor proceselor din sist; cand un nou process vine in
grupul de procese trebuie sa primeasca numele tuturor proc din grup si deasemenea numele
lui trebuie distribuit tuturor proc
b) – daca un process da gres intreg sist cade, de ac trebuie monitorizata starea procesului
ca daca un process da gres celelalte procese sa nu-i mai trimita mesaje de request cand isi
revine poate initia procedura de a reintra.
3. Aproximarea Token-Passing
- o alta metoda este de a circula un jeton printre procese in sist;
- jetonul este un tip special de mesaj care este pasat in sist; posesia jetonului da dreptul
purtatorului sa intre in sect critica