sterowanie wspÓŁbieŻnoŚciĄ

42
STEROWANIE WSPÓŁBIEŻNOŚCIĄ Prowadzący: mgr inż. Leszek Siwik Autorzy: Andrzej Mazur Jacek Roman Michał Pawłowski

Upload: brant

Post on 20-Mar-2016

81 views

Category:

Documents


1 download

DESCRIPTION

STEROWANIE WSPÓŁBIEŻNOŚCIĄ. Prowadzący: mgr inż. Leszek Siwik Autorzy: Andrzej Mazur Jacek Roman Michał Pawłowski. Zagadnienia:. Lock-Based Protocols Timestamp-Based Protocols Validation-Based Protocols Multiple Granularity - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Prowadzący: mgr inż. Leszek Siwik Autorzy: Andrzej Mazur

Jacek Roman Michał Pawłowski

Page 2: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Zagadnienia: Lock-Based Protocols

Timestamp-Based Protocols

Validation-Based Protocols

Multiple Granularity

Multiversion Schemes

Zakleszczenia

Page 3: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Lock-Based Protocols Mechanizmem zarządzania

współbieżnym dostępem do danych jest blokada.

Zanim transakcje uzyska dostęp do danych musi założyć blokadę na te dane

Jeżeli transakcja posiada dostęp do zasobów, żadna inna transakcja nie może modyfikować tych zasobów

Page 4: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

BlokadyNa dane może zostać nałożona :

blokada współdzielona (z ang. Shared lock) – dane mogą być odczytywane i zapisywane.

blokada wyłączna (z ang. Exclusive lock) – dane mogą być tylko odczytywane.

Page 5: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Zgodność blokad Dwie blokady są zgodne, jeżeli mogą być jednocześnie

założone na tą samą daną przez dwie różne transakcje.

Page 6: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

PrzykładTransakcja A:

lock-X(B);read(B);B := B – 50;write(B);unlock(B);lock-X(A);read(A);A:=A+50;write(A);unlock(A);

Transakcja B:

lock-S(A);read(A);unlock(A);lock-S(B);read(B);unlock(B);display(A+B);

Page 7: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Granting of Locks – warunki przyznania blokady Nie ma innej transakcji, która trzymałaby

blokadę w sposób niekompatybilny z M

Nie ma innej transakcji, która czeka na założenie blokady na Q i która wysunęła żądanie zamknięcia przed Ti

Page 8: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

The Two-Phase Locking Protocol Growing phase - transakcja może zakładać

blokady ale nie może zdejmować blokad

Shrinking phase – transakcja może zdejmować blokady, ale nie może zakładać nowych blokad

Page 9: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

PrzykładTransakcja A:

lock-X(B);read(B);B:=B-50;write(B);lock-X(A);read(A);A:=A+50;write(A);unlock(B);unlock(A);

Transakcja B:

lock-S(A);read(A);lock-S(B);read(B);display(A+B);unlock(A);unlock(B);

Page 10: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Wady The Two-Phase Protocol Zakleszczenia Cascading rollbacks

Page 11: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Modyfikacje The Two-Phase Protocol Strict Two-Phase locking protocol

Blokady wyłączne nie mogą być zwolnione zanim transakcja nie będzie potwierdzona ( lub wycofana )

Rigorous Two-Phase locking protocolŻadna blokada nie może być zwolniona zanim transakcja nie będzie potwierdzona (lub wycofana )

Two-phase locking protocol with conversionsUpgrade – konwersja z blokady współdzielonej na wyłączną – tylko w growing phaseDowngrade – konwersja z blokady wyłącznej na współdzieloną – tylko w shrinking phase

Page 12: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Graph-Based Protocols Protokół ten wymaga więcej informacji o

sposobie dostępu transakcji do danych.

Zakłada się częściową kolejność zbioru D={d1,d2,...,dn}. Jeżeli didj to transakcja która wymaga dostępu do di i dj musi uzyskać wcześniej dostęp do di, niż do dj

Częściowa kolejność sprawia, że zbiór D może być teraz traktowany jak graf niecykliczny zwany detabase graph.

Page 13: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Tree protocolCechy Tree protocol detabase graph jest drzewem jedyną dozwoloną blokadą jest blokada wyłączna

Algorytm Tree-Protocol1. Pierwsza blokada może zostać założona na dowolnej danej 2. Następnie na daną Q może zostać nałożona blokada przez

transakcje Ti, jeżeli na nadrzędną daną jest założona blokada przez Ti

3. Dana może być odblokowane w dowolnym momencie 4. Dana na której była nałożona blokada przez transakcje nie

może zostać ponownie zablokowana przez tą transakcję

Page 14: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Tree protocol

Page 15: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Zalety i wady Tree protocolZalety: Blokadę można zdiąć szybciej niż w two-phase

protocol Wolny od zaklaszczeń

Wady: Transakcja może założyć blokadę na zasobie z

którego nie korzysta

Page 16: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Timestamp-Based Protocol Z każdą transakcją Ti w systemie powiązany jest

unikalny znacznik czasowy - timestamp – TS(Ti)

Znacznik czasowy jest przypisywany przez bazę danych transakcji, zanim zacznie być wykonywana.

Jeżeli pewna transakcja Ti ma znacznik czasowy TS(Ti) i nowa transakcja Tj „weszła” do systemu , to TS(Ti) < TS(Tj).

Page 17: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Metody zapewnienia TS(Ti) < TS(Tj) Używanie wartości zegara jako znacznika

czasowego

Używanie licznika – każdej nowej transakcji przypisywana jest wartość licznika, a następnie licznik jest inkrementowany.

Page 18: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

TimestampsZ każdą daną powiązane są dwa znaczniki

czasowe:

W-timestamp(Q) – największy znacznik czasowy transakcji która dokonała operacji zapisu do danej Q

R-timestamp(Q) – największy znacznik czasowy transakcji która dokonała operacji odczytu danej Q

Page 19: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Timestmap-Ordering Protocol - odczyt Jeżeli TS(Ti) < W-timestamp(Q) – to Ti chce

odczytać wartość danej która jest w tym czasie nadpisana – transakcja zostanie anulowana

Jeżeli TS(Ti) ≥ W-timestamp(Q) – to operacja odczytu zostanie przeprowadzona, R-timestamp(Q) zostanie ustawiony na znacznik czasowy Ti

Page 20: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Timestmap-Ordering Protocol - zapis Jeżeli TS(Ti) < R-timestamp(Q) – wartość Q którą

obliczyła Ti była potrzebna wcześniej, operacja zapisu zostanie odrzucona i Ti będzie anulowana

Jeżeli TS(Ti) < W-timestamp(Q) - Ti próbuje zapisać przestarzałą wartość do Q, operacja zapisu zostanie odrzucona i Ti będzie anulowana

We wszystkich pozostałych przypadkach operacja zapisu zostanie poprawnie przeprowadzona i znacznik W-timestamp(Q) = TS(Ti)

Page 21: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Thomas’ Write Rute modyfikacja Timestamp-Ordering Protocol

zmieniono zasady umożliwienia zapisu do danych

reguły odczytu pozostały niezmienione

zwiększono współbieżność w stosunku do Timestamp-Based Protocol

Page 22: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Thomas’ Write Rute - Zapis Jeżeli TS(Ti) < R-timestamp(Q) – operacja

zapisu zostanie odrzucona i Ti będzie anulowana

Jeżeli TS() < W-timestamp(Q) – operacja zapisu zostanie zignorowana

W każdym innym przypadku operacja zapisu zostanie wykonana poprawnie

Page 23: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Validation-Based ProtocolPrzyjmuje się że każda transakcja Ti wykonuje dwie lub trzy różne fazy w zależności tylko odczytuje dane czy dokonuje ich aktualizacji

1. Faza czytania – odczytanie wartości danych i zapisanie do zmiennych lokalnych, wszystkie wyniki są przygotowywane na lokalnych zmiennych.

2. Faza walidacji - transakcja Ti przygotowuje test walidacji aby sprawdzić czy może przekopiować do bazy wartości zmiennych lokalnych , przechowujących rezultaty operacji zapisu

3. Faza pisania – jeżeli walidacja zakończy się sukcesem - zapisanie wyników od bazy, jeżeli nie – anulowanie Ti

Page 24: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Validation-Based Protocol

1. Start(Ti) – czas kiedy Ti rozpoczyna dzialanie2. Validation(Ti) – czas kiedy Ti kończy faze czytania i

rozpoczyna faze validacji3. Finish(Ti) – czas kiedy Ti kończy faze pisania

Z każdą transakcją powiązane są 3 znaczniki czasowe ( timestamp)

Page 25: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Validation testDla każdej transakcji Ti , takiej że TS(Ti) < TS(Tj) musi być spełniony jeden z warunków: Finish(Ti) < Start(Tj)

Start(Tj)< Finish(Ti) < Validation(Tj)

Page 26: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Multiple Granularity Pozwala na dane różnej wielkości – hierarchia

ziarnistości danych

Może być reprezentowany graficznie przez drzewo

Założenie blokady na węzeł powoduje domyślnie założenie blokad na wszystkich węzłach poniżej

Page 27: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Multiple Granularity - przykład

Page 28: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Intention Lock intention-shared(IS) intention-exclusive(IX) shared and intention- exclusive(SIX)

Tabela zgodności

Page 29: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

 Multiversion Schemes Każda operacja zapisu do Q powoduje utworzenie nowej

wersji Q.

Kiedy zostanie wywołana operacja odczytu system bazy danych wybierze jedną z wersji , która będzie odczytana

Transakcja która wykonuje operacje odczytu nigdy nie musi czekać

umożliwia to zwiększenie współbieżności

Page 30: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Multiversion Timestamp Ordering Z każdą transakcją Ti powiązany jest TS(Ti)Każda wersja Qt danej Q zawiera trzy pola:

1. Wartość zmiennej Qt 2. W-timestamp(Qt) – znacznik czasowy

transakcji która utworzyła wersje Qt 3. R-timestamp(Qt) – największy znacznik

transakcji jak odczytała wartość Qt

Page 31: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Multiversion Timestamp Ordering Jeżeli Ti wywoła read(Q) wtedy otrzyma

wartość jednej z wartość Qt

Jeżeli Ti wywoła write(Q) i TS(Ti) < R-timestamp(Qt) wtedy Ti zostanie anulowana.

Jeżeli Ti = W-timestamp(Qt) utworona zostanie nowa wersja Q

Page 32: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Multiversion Two-Phase Locking Różnice pomiędzy transakcjami

odczytującymi i aktualizującymi

Transakcje aktualizacji używają rigorous two-phase locking protocol

1. Każda operacja write(Q) powoduje utworzenie nowej wersji Q

2. Każda wersja Q posiada timestamp, którego wartość jest otrzymywana z ts_counter

Page 33: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Multiversion two-phase locking Jeżeli transakcja aktualizacji wywoła read(Q) –

zakłada blokadę współdzieloną na Q i odczytuje jej ostatnią wersje, jeżeli wywoła write(Q) – zakłada blokadę wyłączną , tworzy nową wersje Q i ustawia timestamp na nieskończoność

Jeżeli transakcja zostanie zaakceptowana:

1. timestamp wersji Q zostaje ustawiony na ts_counter + 12. ts_counter zostaje inkrementowany

Page 34: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Zaklaszczenia System jest zakleszczony jeżeli instnieje

zbiór transakcji takich , że każda transakcja czeka na inną transakcje

Obsługa zakleszczeń:

1. protokół zabezpieczający przed zakleszczeniami 2. można zezwolić na zakleszczenia i zastosować

mechanizmy deadlock-detection i deadlock-recovery.

Page 35: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

 Zapobieganie zakleszczeniom Wszystkie transakcje zakładały blokady zanim zaczną się

wykonywać

Zastosowanie częściowej kolejności dostępu do danych

Wait-die (czekaj albo gin)– starsza transakcja może czekać aż młodsza porzuci zasób, młodsza transakcja nigdy nie czeka – zostaje anulowana.Transakcja może zostać anulowana wiele razy zanim otrzyma zasób

Wound-wait (zran albo czekaj)– starsza transakcja wywłaszcza młodszą, zamiast czekać na zwolnienie zasobu przez młodszą. Młodsza może czekać na zwolnienie zasobu przez starszą.

Page 36: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Wykrywanie zakleszczeń Jeżeli system nie używa protokołu

zabezpieczającego przed zakleszczeniami to musi posiadać mechanizmy wykrywania zakleszczeń

Algorytm sprawdzający system jest wywoływany okresowo aby wykryć pojawiające się zakleszczenie

Jeżeli zostanie wykryte zakleszczenie zostaje uruchomiany mechanizm wychodzenia z zakleszczenia

Page 37: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Wykrywanie zakleszczeńZakleszczenie może być opisane przez wait-for graf G(V,E):

V – zbiór wszystkich transakcji w systemie E - zbiór uporządkowanych par Ti ->Tj System jest w zakleszczeniu wtedy i tylko

wtedy gdy w wait-for grafie są cykle

Page 38: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

graf bez cykli–bez zakleszczeń

Page 39: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Graf z cyklami - zakleszczenia

Page 40: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Mechanizm wychodzenie z zakleszczenia Wybranie transakcji która ma zostać

anulowana

Anulowanie transakcji – anulowanie całej transakcji lub tylko tyle, ile jest konieczne aby wyjść z zakleszczenia

Należy unikać zagłodzenia – transakcja może zostać anulowana skończoną liczbę razy

Page 41: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

Pytania:1. Co oznacza że blokady są zgodne.2. Kiedy transakcja może zamknąć blokade w

Lock-Based Protocols .3. Fazy The Two-Phase Locking Protocol.4. Modyfikacje The Two-Phase Locking Protocol.5. Porównanie Timestamp-Based Protocol z

Thomas’ Write Rute 6. Strategie zapobiegania zakleszczeniom

Page 42: STEROWANIE WSPÓŁBIEŻNOŚCIĄ

KONIEC