Integracja systemów transakcyjnych Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel Alokacja danych Alokacja danych umieszczanie danych w węzłach rozproszonej BD Wykorzystuje fragmentację replikację Uwzględnia obciąŝenie węzłów odczyty danych dane powinny być "blisko" uŝytkownika modyfikacje danych naleŝy synchronizować repliki
Alokacja danych Wywodzi się z problemu alokacji plików w sieci komputerowej Problem jest NP-zupełny n fragmentów, m węzłów: ( m ) n Zysk z alokacji zaleŝy od "jakości alokacji" moŝliwości optymalizatora zapytań Algorytm Best Fit Podejście intuicyjne Fragment Fi pamiętamy na stanowisku Sj, na którym liczba referencji odczytu i modyfikacji Fi jest największa Ograniczenie: fragment alokuje się tylko w jednym węźle brak replikacji Przykład charakterystyka przetwarzania z węzłów S i S4 jest realizowany dostęp do F i F z częstością F: odczyty i modyfikacja F: odczyty 4
Best Fit - Przykład Charakterystyka przetwarzania 5 Best Fit - Przykład S5 S S4 F S F S F 6
Best Fit Algorytm prosty obliczeniowo Nie uwzględnia replikacji Mała "dokładność" uwzględnia tylko częstości odwołań do fragmentów 7 Algorytm optymalizacji zysku Algorytm określa wszystkie węzły, na których opłaca się umieścić fragment wykorzystanie replik Fragment umieszczany w tych węzłach, dla których zysk z umieszczenia fragmentu jest większy niŝ koszt przechowywania i aktualizowania tego fragmentu Fragment Fi pamiętamy w węźle Sj, w którym koszt odczytu jest większy niŝ koszt zapisu Fi z dowolnego węzła w systemie 8 4
Algorytm optymalizacji zysku Koszt utrzymywania dodatkowej kopii fragmentu Fi w węźle Sj: sumaryczny czas wszystkich lokalnych aktualizacji fragmentu Fi przez transakcje inicjowane w węźle Sj plus sumaryczny czas wszystkich zdalnych aktualizacji fragmentu Fi przez transakcje inicjowane w pozostałych węzłach SRBD Zysk z utworzenia dodatkowej kopii fragmentu Fi w węźle Sj: róŝnica między czasem wykonania zapytania zdalnego (bez replikacji) a czasem wykonania zapytania lokalnego pomnoŝona przez częstość zapytania do fragmentu Fi z węzła Sj 9 Charakterystyki przetwarzania Przykład Koszty modyfikacji dla schematów alokacji fragmentu F F alokowany kolejno w S, S,, S5 5
Charakterystyki przetwarzania Przykład Koszty modyfikacji dla schematów alokacji fragmentu F F alokowany kolejno w S, S,, S5 Charakterystyki przetwarzania Przykład Koszty modyfikacji dla schematów alokacji fragmentu F F alokowany kolejno w S, S,, S5 6
Charakterystyki przetwarzania Przykład Zysk dla schematów alokacji fragmentu F Charakterystyki przetwarzania Przykład Zysk dla schematów alokacji fragmentu F 4 7
Charakterystyki przetwarzania Przykład Zysk dla schematów alokacji fragmentu F 5 Przykład Uzyskany schemat alokacji fragment Fi jest alokowany we wszystkich węzłach dla których zysk>koszt S5 S F, F F S4 F, F S F, F S F, F 6 8
Sformułowanie owanie problemu Dane charakterystyki i rozkłady zapytań charakterystyki i rozkłady operacji DML węzły sieci przepustowość połączeń pomiędzy węzłami moc przetwarzania w węzłach Poszukiwane schemat rozmieszczenia fragmentów w węzłach (moŝliwe redundancje), tak by pewna funkcja kosztu była minimalna / maksymalna 7 Niezbędne dane Fragmenty F = {F, F,, F j } rozmiar kaŝdego fragmentu (F j ) musi być określony koszt komunikacji sieciowej Transakcje T = {T, T,, T i } rodzaje (odczyt, zapis) częstotliwość uruchamiania podzbiory adresowanych danych Węzły pojemność dysków charakterystyka I/O CPU, Sieć komputerowa S = {S, S,, S k } przepustowość 8 9
Informacje o transakcjach RM (Retrieval Matrix) T T T T4 F F F F4 UM (Update Matrix) T T T T4 F F F F4 9 Informacje o transakcjach Nie wszystkie rekordy muszą być odczytywane lub modyfikowane (Selectivity Matrix) Częstotliwość odwołań (Frequency Matrix) SEL:(%) F T. T. T T4.5 FRQ: F.. 5 F. F4..5. 4 T T T T4 S S S 4 S4
Informacje o sieci komputerowej Węzły połączone medium komunikacyjnym o określonej przepustowości (Communication Cost Matrix) Uproszczenie: macierz komunikacji jest symetryczna CCM S S S S4 S..48.6 S..64. S.48.64.64 S4.6..64 Koszt Koszt moŝe uwzględniać liczbę operacji I/O (rozmiar danych) czas procesora koszt komunikacji sieciowej (przesyłania danych) rozmiar bufora danych (cache)
Koszt Minimalizacja kosztu moŝe dotyczyć kosztu przechowywania kaŝdego fragmentu Fj w węźle Sk kosztu wykonywania zapytań Fj w węźle Sk kosztu modyfikowania Fj we wszystkich węzłach, gdzie Fj jest przechowywany kosztu komunikacji sieciowej Kryteria optymalizacji minimalizacja czasu odpowiedzi maksymalizacja przepustowości kaŝdego węzła Algorytmy statyczne Uruchamiane w czasie bezczynności systemu Wykonywane okresowo ZłoŜone obliczeniowo O(jk i) j - liczba fragmentów tabeli k - liczba węzłów SRBD, w których są alokowane dane i - liczba transakcji 4
Przykładowy algorytm Cel optymalizacji rozmieszczenie fragmentów w węzłach w ten sposób, by koszt był minimalny min(cc transfer + CC transakcji ) CC transfer koszt transferu danych CC transakcji koszt wykonania transakcji Dane wejściowe RM(Ti, Fj) Retrieval matrix UM(Ti, Fj) Update matrix SEL(Ti, Fj) Selectivity matrix FRQ(Ti, Sk) Frequency matrix CCM(Sk, Sm) Communication cost matrix Dane wyjściowe FAT(Fj, Sk) Fragment Allocation Table 5 Przykładowy algorytm Inicjalizacja macierzy FAT (Fragment Allocation Table) Algorytm - krok dla kaŝdej transakcji Ti, fragmentu Fj, węzła Sk wykonaj: jeŝeli liczba dostępów transakcji Ti do Fj w Sk i częstotliwość wywołania transakcji Ti w węźle Sk > to pozostaw kopię fragmentu Fj w węźle Sk 6
Przykładowy algorytm Krok For Ti in T, Fj in F, Sk in S do if (RM(Ti,Fj) * FREQ(Ti,Sk) > ) FAT(Fj,Sk) := RM T T T T4 F F F F4 FREQ: S T T T T4 S S 4 S4 FAT - krok F F S S S S4 F F4 7 Przykładowy algorytm Usunięcie kopii zaalokowanych fragmentów w celu redukcji kosztów odświeŝania usunięcie kopii dla których zysk < koszt Algorytm - krok dla kaŝdego Fj zaalokowanego w więcej niŝ węźle, procedura usuwania jest powtarzana dopóki dla kaŝdego fragmentu zysk > koszt lub pozostanie tylko kopia Fj w SRBD jeŝeli zysk < koszt we wszystkich węzłach to Fj jest pozostawiany w tym węźle, w którym zysk-koszt jest największa Krok For Fj in F do While (NumFragCopy(Fj) > ) begin Let Sk be the site with FAT(Fj,Sk)= and a minimum value of (Benefit(Fj,Sk)-Cost(Fj,Sk)); if ((Benefit(Fj,Sk) - Cost(Fj,Sk)) < ) FAT(Fj,Sk) = end; 8 4
Przykładowy algorytm Cost(Fj,Sk) F S S 6 S 4 S4 Benefit(Fj,Sk) F S S 4 S 7 S4 9 FAT z kroku F F S S S S4 F F4 FAT - krok F S S S S4 9 Przykładowy algorytm Sprawdzenie czy wszystkie fragmenty zostały zaalokowane Algorytm - krok jeŝeli któryś z fragmentów nie został jeszcze zaalokowany, ale są na nim wykonywane modyfikacje, to jako węzeł przechowywania naleŝy wybrać ten z najmniejszym kosztem wykonania operacji For Fj in F do if (NumFragCopy(Fj) = and UM(Ti,Fj) > ) begin Sk = MinOperCost(Fj); FAT(Fj,Sk) = ; end; 5
Przykładowy algorytm UM F F F F4 T T T T4 FREQ: S S S S4 T T T T4 4 suma: 7 FAT - krok F S S S S4 FAT - krok F S S S S4 Przykładowy algorytm - modyfikacja Kroki i są takie same jak w poprzednim algorytmie Krok - usuwanie fragmentów przejrzenie wszystkich fragmentów z kroku w porządku malejących wag waga jest wyliczana na podstawie liczby aktualizacji zrealizowanych przez transakcje pochodzące z innych węzłów kopia jest usuwana z węzła na podstawie wag (więcej aktualizacji fragment szybciej usunięty z węzła) 6
Algorytmy dynamiczne Rozkład obciąŝenia węzłów i charakterystyki dostępu do danych zmieniają się w czasie algorytmy statyczne zmniejszają wydajność baz danych konieczność relokacji fragmentów algorytmy dynamiczne Simple Counter Load Sensitive Counter Simple Counter Jeden dedykowany węzeł SRBD utrzymuje liczniki dostępów z kaŝdego węzła do kaŝdego fragmentu (bloku danych) Proces systemowy okresowo sprawdza liczniki dla kaŝdego fragmentu (bloku danych) w regularnych odstępach czasowych Relokacja rekordów ma miejsce, gdy węzeł z najwyŝszą wartością licznika jest inny niŝ ten, gdzie dane są aktualnie składowane 4 7
Simple Counter Proces systemowy gromadzi statystyki takie jak: przepustowość, średni czas odpowiedzi, liczba transakcji wymagających dostępu do danych Okres sprawdzania liczników musi zapewnić szybką reakcję na zmieniające się obciąŝenie musi zapewnić relokację danych po ustabilizowaniu się zmian obciąŝenia 5 Simple Counter Zalety: zapewnia zadowalający schemat alokacji, gdy obciąŝenie systemu jest niskie węzły są w miarę równomiernie obciąŝone zmiany obciąŝenia stabilizują się w czasie Wady: jeŝeli większość zapytań pochodzi z jednego węzła, to wszystkie rekordy mogą znaleźć się w tym węźle przeciąŝenie węzła 6 8
Load Sensitive Counter Monitoruje obciąŝenie systemu i częstotliwość dostępu do danych Relokacja danych wykonywana jest jako Simple Counter Algorithm Relokacja wykonywana jest jeśli tylko nie powoduje przekroczenia pewnego poziomu obciąŝenia węzła Parametry algorytmu maksymalny procent danych przechowywanych w węźle maksymalny poziom obciąŝenia 7 Algorytmy dynamiczne Cechy nieefektywne, gdy częstotliwość sprawdzania liczników jest za duŝa lub gdy obciąŝenie systemu zmienia się szybko najgorsza wydajność, gdy algorytm próbuje nadąŝyć za zmieniającym się obciąŝeniem (duŝo relokacji danych) 8 9
Bibliografia M. T. Özsu, P. Valduriez, Distributed and Parallell Database Systems, ACM Computing Surveys, vol. 8, no., 996, pp.5-8 Y-F. Huang, J-H. Chen, Fragment Allocation in Distributed Database Design, July, pp. 49-56 A. Brunstrom, S. T. Leutenegger, R. Simha, Experimental Evaluation of Dynamic Data Allocation Strategies in a Distributed Database With Changing Workloads, no. TR-95-, 995, pp. -5 P. M. G. Apers, Data Allocation in Distributed Database Systems, ACM Transactions on Database Systems, vol., no., September 988, pp. 6-4 9