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

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Przetwarzanie transakcyjne
Podstawowe pojęcia programowania współbieżnego
Wykład nr 8: Zakleszczenia
Wzorce.
SYSTEMY OPERACYJNE ZAKLESZCZENIA (BLOKADY)
Algorytm Dijkstry (przykład)
Systemy rozproszone W. Bartkiewicz Wykład 11. Transakcje
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
ALGORYTM Co to jest algorytm?
ZŁOŻONOŚĆ OBLICZENIOWA
Wykład nr 7: Synchronizacja procesów
Wykład 11 Prowadzący: dr Paweł Drozda
Wykład 10 Prowadzący: dr Paweł Drozda
Synchronizacja Rozdział 5.
Temat nr 10: System przerwań
Wykład 3 Wojciech Pieprzyca
Zarządzanie transakcjami
Wstęp do interpretacji algorytmów
Dr Anna Kwiatkowska Instytut Informatyki
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
Muteksy Muteksy (mutex – MUTual EXclusion) są prostymi obiektami synchronizacyjnymi pełniącymi rolę semaforów binarnych dla wątków (chroniącymi sekcje.
Zarządzanie transakcjami i odtwarzanie po awarii
Wątki.
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
TRANSAKCJE TYLKO ODCZYT TYLKO ZAPIS
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Podstawy programowania
Systemy Rozproszone Synchronizacja 2
Zbiór do posortowania mieści się w pamięci
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
Linux - polecenia.
Instrukcja USOS Płatności wersja by Marek Opacki.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
Problem sekcji krytycznej
Buforowanie D e f i n i c j a.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Defragmentacja dysku Jednym z kluczowych czynników wydajności operacji wejścia/wyjścia jest poziom fragmentacji plików. Fragmentacja oznacza zapisywanie.
Elżbieta Fiedziukiewicz
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
dr Łukasz Murowaniecki T-109
Wykład 7 Synchronizacja procesów i wątków
W ą t e k (lekki proces) thread.
Podstawy Przetwarzania Rozproszonego
Bariery synchronizacyjne Bariery są obiektami synchronizacyjnymi pakietu pthread służącymi do wyrównywania czasów pracy wątków wykonujących wspólne zadanie.
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Temat 7: Instrukcje warunkowe
ZAPIS BLOKOWY ALGORYTMÓW
Algorytmika.
Procesor, pamięć, przerwania, WE/WY, …
1 Zarządzanie transakcjami Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Jak wykonać prosty licznik odwiedzin strony internetowej?
Wstęp do interpretacji algorytmów
Tryby adresowania i formaty rozkazów mikroprocesora
Instrukcja USOS Płatności wersja by Marek Opacki.
Bartosz Pawlak Wiktor Paliwoda Bezpieczeństwo Systemów Operacyjnych IMAP vs POP.
Wstęp do programowania Wykład 7
Zarządzanie projektami
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Przetwarzanie transakcyjne. Wprowadzenie (1) Baza danych – jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) mini.
Algorytmy zarządzania współbieżnym wykonywaniem transakcji 1.
Autor: Łukasz Budrewicz
Windows Workflow Foundation
Zapis prezentacji:

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 Multiversion Schemes Zakleszczenia

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

Blokady Na dane może zostać nałożona : blokad a współdzielon a (z ang. Shared lock) – dane mogą być odczytywane i zapisywane. blokad a wyłączn a (z ang. Ex clusive lock) – dane mogą być tylko odczytywane.

Zgodność blokad Dwie blokady są zgodne, jeżeli mogą być jednocześnie założone na tą samą daną przez dwie różne transakcje.

Przykład Transakcja 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);

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 T i

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

Przykład Transakcja 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);

Wady The Two-Phase Protocol Zakleszczenia Cascading rollbacks

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 conversions Upgrade – konwersja z blokady współdzielonej na wyłączną – tylko w growing phase Downgrade – konwersja z blokady wyłącznej na współdzieloną – tylko w shrinking phase

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 di  dj 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.

Tree protocol Cechy Tree protocol detabase graph jest drzewem jedyną dozwoloną blokadą jest blokada wyłączna Algorytm Tree-Protocol 1. 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ę

Tree protocol

Zalety i wady Tree protocol Zalety: 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

Timestamp-Based Protocol Z każdą transakcją T i w systemie powiązany jest unikalny znacznik czasowy - timestamp – TS(T i ) Znacznik czasowy jest przypisywany przez bazę danych transakcji, zanim zacznie być wykonywana. Jeżeli pewna transakcja T i ma znacznik czasowy TS(T i ) i nowa transakcja T j „weszła” do systemu, to TS(T i ) < TS(T j ).

Metody zapewnienia TS(T i ) < TS(T j ) 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.

Timestamps Z 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

Timestmap-Ordering Protocol - odczyt Jeżeli TS(T i ) < W-timestamp(Q) – to T i chce odczytać wartość danej która jest w tym czasie nadpisana – transakcja zostanie anulowana Jeżeli TS(T i ) ≥ W-timestamp(Q) – to operacja odczytu zostanie przeprowadzona, R-timestamp(Q) zostanie ustawiony na znacznik czasowy T i

Timestmap-Ordering Protocol - zapis Jeżeli TS(T i ) < R-timestamp(Q) – wartość Q którą obliczyła T i była potrzebna wcześniej, operacja zapisu zostanie odrzucona i T i będzie anulowana Jeżeli TS(T i ) < W-timestamp(Q) - T i próbuje zapisać przestarzałą wartość do Q, operacja zapisu zostanie odrzucona i T i będzie anulowana We wszystkich pozostałych przypadkach operacja zapisu zostanie poprawnie przeprowadzona i znacznik W-timestamp(Q) = TS(T i )

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

Thomas’ Write Rute - Zapis Jeżeli TS(T i ) < R-timestamp(Q) – operacja zapisu zostanie odrzucona i T i będzie anulowana Jeżeli TS() < W-timestamp(Q) – operacja zapisu zostanie zignorowana W każdym innym przypadku operacja zapisu zostanie wykonana poprawnie

Validation-Based Protocol Przyjmuje się że każda transakcja T i 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 T i 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 T i

Validation-Based Protocol 1. Start(T i ) – czas kiedy T i rozpoczyna dzialanie 2. Validation(T i ) – czas kiedy T i kończy faze czytania i rozpoczyna faze validacji 3. Finish(T i ) – czas kiedy T i kończy faze pisania Z każdą transakcją powiązane są 3 znaczniki czasowe ( timestamp)

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

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

Multiple Granularity - przykład

Intention Lock intention-shared(IS) intention-exclusive(IX) shared and intention- exclusive(SIX) Tabela zgodnoś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

Multiversion Timestamp Ordering Z każdą transakcją T i powiązany jest TS(T i ) Każda wersja Q t danej Q zawiera trzy pola: 1. Wartość zmiennej Q t 2. W-timestamp(Q t ) – znacznik czasowy transakcji która utworzyła wersje Q t 3. R-timestamp(Q t ) – największy znacznik transakcji jak odczytała wartość Q t

Multiversion Timestamp Ordering Jeżeli T i wywoła read(Q) wtedy otrzyma wartość jednej z wartość Q t Jeżeli T i wywoła write(Q) i TS(T i ) < R-timestamp(Q t ) wtedy T i zostanie anulowana. Jeżeli T i = W-timestamp(Q t ) utworona zostanie nowa wersja Q

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

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 ts_counter zostaje inkrementowany

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.

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ą.

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

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 T i ->T j System jest w zakleszczeniu wtedy i tylko wtedy gdy w wait-for grafie są cykle

graf bez cykli–bez zakleszczeń

Graf z cyklami - zakleszczenia

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

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

KONIEC