Wykład 11 Prowadzący: dr Paweł Drozda

Slides:



Advertisements
Podobne prezentacje
Przetwarzanie transakcyjne
Advertisements

Podstawowe pojęcia programowania współbieżnego
Systemy rozproszone W. Bartkiewicz Wykład 11. Transakcje
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
ZASADY AUDITOWANIA PLANOWANIE AUDITU
Systemy zarządzania bazami danych 9. Transakcje. Oryginał: Hector Garcia-Molina9. Transakcje2 Współbieżność, wielodostęp T 1 T 2 …T n BD (więzy integralności)
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Metody formalne Copyright, 2005 © Jerzy R. Nawrocki Analiza systemów informatycznych.
Dawid Fojtuch Bartłomiej Sankowski
by Ernest Jamro Katedra Elektroniki, AGH Kraków
Wykład nr 7: Synchronizacja procesów
Wykład 10 Prowadzący: dr Paweł Drozda
Synchronizacja Rozdział 5.
Wykład 3 Wojciech Pieprzyca
ANALIZA SYSTEMOWA PODEJMOWANIE DECYZJI
Zarządzanie transakcjami
Wstęp do interpretacji algorytmów
Dr Anna Kwiatkowska Instytut Informatyki
ZARZĄDZANIE PROCESAMI
9. KOORDYNACJA PROCESÓW WSPÓŁBIEŻNYCH PRZY UŻYCIU INTERPRETATORA
Zarządzanie transakcjami i odtwarzanie po awarii
Semafory.
Projektowanie - wprowadzenie
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Bezpieczeństwo baz danych
Mikroprocesory i mikrokontrolery
Budowa algorytmów Algorytm: skończony ciąg operacji wraz z ściśle sprecyzowanym porządkowaniem ich wykonywania, które po realizacji dają rozwiązanie dowolnego.
dr inż. Piotr Muryjas Wyższa Szkoła Przedsiębiorczości i Administracji
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ć.
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
SQL – Structured Query Language (3)
Metody przedstawiania algorytmów.
Systemy Rozproszone Synchronizacja 2
Zbiór do posortowania mieści się w pamięci
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
orbitale cząsteczkowe:
Algorytmy i Struktury Danych Typy algorytmów
Administracja serwerem bazy danych Oracle 11g Zarządzanie strukturą bazy danych Wykład nr 2 Michał Szkopiński.
Harmonogram przebiegu dnia rozrachunku na T2S
Sieciowe Systemy Operacyjne
Podstawowe informacje o SYSTEMIE WINDOWS
Operacje edycyjne w bazie danych - kwerendy funkcjonalne Marzena Nowakowska Katedra Informatyki Stosowanej, WZiMK, PŚk.
MOiPP Wykład 3 Matlab Przykłady prostych metod obliczeniowych.
dr Łukasz Murowaniecki T-109
DATA BINDING, czyli powiązanie danych. Data Binding Bindowanie danych (ang. Data Binding) jest mechanizmem bardzo ważnym, gdyż dzięki wiązaniu danych.
OPB - On-chip Peripherial Bus AXI – Advance eXtensible Interface
Proces rozliczania recept realizowanych od
Wdrożenie outsourcingu
Wykład 7 Synchronizacja procesów i wątków
ZAPIS BLOKOWY ALGORYTMÓW
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych.
szeregowe, z rozgałęzieniami, zawierające pętle
Moduł III Definiowanie i planowanie zadań typu P 1.
System emulacji bezprzewodowych sieci komputerowych
Procesor, pamięć, przerwania, WE/WY, …
1 Zarządzanie transakcjami Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000.
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
Transakcje Przedmiot: Bazy Danych Prowadzący: mgr inż. Leszek Siwik Autorzy: Grzegorz Szymczyk Damian Wieczorek.
STEROWANIE WSPÓŁBIEŻNOŚCIĄ Prowadzący: mgr inż. Leszek Siwik Autorzy: Andrzej Mazur Jacek Roman Michał Pawłowski.
Wstęp do interpretacji algorytmów
Wstęp do programowania Wykład 7
Style i szablony w MS Word 2010
Proces produkcyjny i technologiczny
Miasta Krakowa przyjazny niepełnosprawnym. Wdrożono wzorcowe arkusze styli Wdrożono wzorcowe arkusze styli Opracowano i udostępniono formularze: Opracowano.
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.
Procedura instalacji Linuksa. Z serwera pobieramy obraz płyty. Nagrywamy obraz na płytę. Sprawdzamy ustawienia w BIOS – podczas uruchamiania systemu napęd.
Efektywność algorytmów
Zapis prezentacji:

Wykład 11 Prowadzący: dr Paweł Drozda Transakcje Wykład 11 Prowadzący: dr Paweł Drozda

Algorytmy zarządzania współbieżnym wykonaniem transakcji blokowanie - uszeregowanie transakcji wynika z kolejności uzyskiwanych blokad znaczników czasowych – uszeregowanie wynika z wartości znaczników czasowych związanych z transakcjami optymistyczne – walidacja poprawności uszeregowania dr Paweł Drozda

Metody znaczników czasowych (1) znacznik czasowy (TS) – unikalny identyfikator wyznaczający kolejność transakcji (wg kolejności uruchomienia) generowane przez zegar bądź przez licznik (poprzez zwiększenie o jeden) znaczniki czasowe jednostek danych: ReadTS(x) – znacznik ostatniej transakcji czytającej x WriteTS(x) – znacznik ostatniej transakcji piszącej do x dr Paweł Drozda

Metody znaczników czasowych (2) Algorytm T chce odczytać x jeśli TS(T) < WriteTS(x), to T wycofywana i restartowana z nowym TS(T) gdy TS(T) >= WriteTS(x), to T czyta x; wartość ReadTS(x)= max(TS(T),ReadTS(x)) T chce pisać do x jeśli TS(T) < WriteTS(x) lub TS(T) < ReadTS(x), to T wycofywana i restartowana z nowym TS(T) wpp T pisze do x; WriteTS(x)=TS(T) dr Paweł Drozda

Metody znaczników czasowych (3) Zasada zapisu Thomasa (modyfikacja podstawowej metody) T chce pisać do x jeśli TS(T) < WriteTS(x) – można pominąć operację zapisu do x (wartość jest przestarzała – później uruchomiona transakcja zmodyfikowała tą wartość) pozostałe przypadki bez zmian zapewnia szerszy wielodostęp nie odrzuca transakcji z niepotrzebnymi zapisami (tylko nie dokonuje zapisu) dr Paweł Drozda

Metoda znaczników czasowych – przykład (1) start r(x) x=x+10 w(x) t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 start r(y) y=y+20 w(y)  start r(y) y=y+30 w(y) dr Paweł Drozda

Metoda znaczników czasowych – przykład (2) w(z)  commit z=100 w(z) commit r(y) y=y+20 w(y) commit dr Paweł Drozda

Podstawowa metoda znaczników czasowych - cechy gwarantuje szeregowalność transakcji - transakcje wykonywane według znaczników czasowych nie gwarantuje odtwarzalności harmonogramu przykład: H1= w1(x)r2(x)w2(x)c2a1, gdzie TS(T1)< TS(T2) dr Paweł Drozda

Modyfikacja metody Zapewnienie odtwarzalności – konieczna modyfikacja metody główna idea – buforowanie operacji odczytu i zapisu aż do momentu zatwierdzenia transakcji T1 zapisuje x: WriteTS(x) – aktualizowany, x – zmieniony dopiero po zatwierdzeniu transakcji T1 T2 odczytuje daną x zaktualizowaną przez T1: gdy warunek odczytu jest spełniony to odczyt odsunięty do momentu zatwierdzenia T1 dr Paweł Drozda

Algorytmy optymistyczne (1) Trzy stany: Faza odczytu – modyfikacje przechowywane w obszarach roboczych transakcji Faza walidacji – badanie uszeregowalności transakcji; transakcje niespełniające uszeregowalności wycofywane i restartowane Faza zapisu – po pomyślnej walidacji modyfikacje wprowadzane do bazy dr Paweł Drozda

Algorytmy optymistyczne (2) Faza walidacji – określa czy transakcje mogą spowodować kolizję znaczniki czasowe dla transakcji: start(T) – rozpoczęcie transakcji validation(T) – rozpoczęcie walidacji finish(T) – po zakończeniu transakcji walidacja pomyślna gdy: finish(S)<start(T) – sekwencyjnie lub: jeśli start(T)<finish(S) to: dane zapisywane przez wcześniejszą transakcję nie mogą zawierać danych zapisywanych przez bieżącą transakcję finish(S)<validation(T) dr Paweł Drozda

Algorytmy optymistyczne (3) efektywne – gdy konflikty rzadkie gdy wycofania częste – algorytm nieefektywny szerszy wielodostęp w porównaniu do blokowania dr Paweł Drozda

Ziarnistość danych (1) założenie algorytmów – dostęp transakcji do pewnej jednostki danych Elementy bazy danych (ziarnistość): cała baza plik strona (sektor na dysku) rekord wartość w polu rekordu dr Paweł Drozda

Ziarnistość (2) - blokady Ziarnistość dla blokowania: czy blokować całą bazę – czy poszczególne pola rekordów? im większa część blokowana – większe prawdopodobieństwo zakleszczenia, węższy wielodostęp większa część bazy modyfikowana – szybsze blokowanie całej bazy niż poszczególnych rekordów wybór w zależności od transakcji dr Paweł Drozda

Hierarchia jednostek blokowania Baza danych Poziom 0 Plik3 Plik1 Plik2 Poziom 1 Strona2 Strona3 Strona1 Poziom 2 Rekord1 Rekord2 Poziom 3 Pole1 Pole2 Poziom 4 dr Paweł Drozda

Ziarnistość - blokowanie zablokowany węzeł  zablokowane następniki (gdy zablokowany rekord1 zablokowane również pole1, pole2) żądanie zablokowania węzła – konieczne sprawdzenie czy któryś z następników nie został zablokowany efektywne przeszukanie następników – blokowanie jednostek hierarchicznych dr Paweł Drozda

Blokowanie jednostek hierarchicznych blokada intencjonalna – blokada zakładana na każdy węzeł nadrzędny np. przy blokowaniu Strona1 blokada intencjonalna założona na Plik2, baza danych typy blokad intencjonalnych intencjonalna do odczytu IR intencjonalna do zapisu IW wszystkie elementy do odczytu i intencjonalna do zapisu RIW dr Paweł Drozda

Kompatybilność blokad IR IW R RIW W Ok. X dr Paweł Drozda

Szeregowalność blokowania hierarchicznego warunki szeregowalności: transakcja nie może blokować, jeśli coś odblokowała transakcji nie wolno zablokować węzła, jeśli nie zablokuje jego bezpośredniego poprzednika blokadą intencjonalną przed odblokowaniem węzła muszą zostać odblokowani wszyscy poprzenicy zakleszczenia obsługiwane jak wcześniej dr Paweł Drozda

Poziomy izolacji (1) Większość SZBD nie zapewnia szeregowalności transakcji Poziom izolacji wprowadzany do znalezienia kompromisu pomiędzy współbieżnością a poprawnością wykonania transakcji Możliwe poziomy izolacji: READ UNCOMMITTED READ COMMITED REPEATABLE READ SERIALIZABLE dr Paweł Drozda

Poziomy izolacji (2) SERIALIZABLE REPEATABLE READ Odczytuje wyłącznie dane zatwierdzone Do momentu zakończenia transakcji żadna dana nie zostanie zmieniona przez inną transakcje Blokuje dostęp do tabeli Zapewnia szeregowalność REPEATABLE READ Tak samo jak SERIALIZABLE – tylko, że blokuje dostęp do danych a nie całej tabeli Pojawia się problem „fantomów” – gdy jedna transakcja czyta dane, druga w tym samym czasie dodaje lub uaktualnia dr Paweł Drozda

Poziomy izolacji (3) READ COMMITTED Odczytuje tylko zatwierdzone dane Zapisane dane nie zostaną zmienione przez inną transakcję do momentu zakończenia transakcji Brak gwarancji, że dane odczytane nie zostaną zmienione przez inną transakcję Problem niepowtarzalnego odczytu – gdy ta sama dana jest czytana dwa razy a w międzyczasie inna transakcja ją modyfikuje dr Paweł Drozda

Poziomy izolacji (4) READ UNCOMMITTED Dopuszczenie odczytywania danych, które zostały zmienione przez niezatwierdzone transakcje – może czytać dodane wiersze które później będą wycofane (Czytanie na brudno) Najniższy poziom izolacji Poziom izolacji SQL – ustawiany przed uruchomieniem transakcji SET TRANSACTION ISOLATION LEVEL (SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED) dr Paweł Drozda

Poziomy izolacji - zestawienie Czytanie na brudno Niepowtarzalny odczyt Fantom READ UNCOMMITED możliwe READ COMMITED Nie występuje REPEATABLE READ SERIALIZABLE dr Paweł Drozda

Transakcje – SQL (1) Dostępne dla parametru engine ustawionego na InnoDB (podobnie jak przy wymuszaniu więzów integralności referencyjnej) CREATE TABLE Studenci(…) engine=InnoDB; Dwa tryby pracy z transakcjami autocommit – każda operacja od razu zatwierdzana (chyba, że się zaznaczy transakcje) Bez autocommit – możliwość grupowania poleceń w transakcję (konieczność potwierdzania commit lub wycofania rollback) dr Paweł Drozda

Transakcje – SQL (2) Ustawienie autocommit: SET AUTOCOMMIT =1; - domyślnie SET AUTOCOMMIT =0; - możliwość grupowania instrukcji w transakcje Zmiana ustawienia na stałe: Zapis w pliku my.ini lub my.cnf w sekcji [mysqld] init_connect=‘SET AUTOCOMMIT=0’ Sprawdzenie ustawienia trybu autocommit: SELECT @@AUTOCOMMIT; dr Paweł Drozda

Transakcje SQL (3) Polecenia: START TRANSACTION – rozpoczyna transakcje AUTOCOMMIT=0 – START TRANSACTION niepotrzebne – uruchamiane automatycznie AUTOCOMMIT=1 – START TRANSACTION uruchamia transakcje, COMMIT lub ROLLBACK kończy blok transakcji COMMIT – zatwierdza wykonanie transakcji ROLLBACK – wycofuje transakcje dr Paweł Drozda

Transakcja przykład Student(id,nazwisko,rok) SET AUTOCOMMIT=0; UPDATE Student set rok=rok+1; INSERT INTO Student VALUES(123,’Nowak’,3); EXIT; - zmiany niezachowane COMMIT; EXIT; - zmiany zachowane SET AUTOCOMMIT=1; START TRANSACTION; ROLLBACK; insert niezachowany, update zachowany dr Paweł Drozda

Transakcje SQL (4) Blokowanie wierszy dla InnoDB: Blokowanie do aktualizacji: SELECT … FROM … WHERE … FOR UPDATE; Blokowanie do czytania: SELECT … FROM … WHERE … LOCK IN SHARE MODE; dr Paweł Drozda

Transakcje - przykład AUTOCOMMIT=1; BEGIN TRANSACTION; SELECT rok FROM Student FOR UPDATE; UPDATE Student SET rok=rok+1; COMMIT; SELECT * FROM Student WHERE nazwisko=‘kowal’ LOCK IN SHARE MODE; INSERT INTO Oceny VALUES(1,2,4); dr Paweł Drozda

Transakcje SQL (5) Blokowanie tabel – dla parametru engine ustawionego na MyISAM – domyślnie Polecenia: LOCK TABLES tabela1 typBlokady, …; typBlokady = READ|WRITE UNLOCK TABLES; - odblokowuje dostęp do tabel dr Paweł Drozda

Transakcje – przykład Sesja1 sesja2 LOCK TABLES Student READ, Oceny WRITE; SELECT * FROM Student; - zostanie wykonana SELECT * FROM Oceny; - czeka na odblokowanie tabeli Oceny UNLOCK TABLES; wykonanie zapytania dr Paweł Drozda