• Nie Znaleziono Wyników

Moduł optymalizuj ˛ acy

W dokumencie Index of /rozprawy2/10132 (Stron 88-92)

Realizacja wieloagentowej integracji danych

3.3 Moduł optymalizuj ˛ acy

Do grupy agentów wykonawczych nale ˙z ˛a agenci czytaj ˛acy, transformuj ˛acy, ko-ryguj ˛acy, sprawdzaj ˛acy, a tak ˙ze zapisuj ˛acy. S ˛a oni odpowiedzialni za realizacj˛e pojedynczego etapu zadania integracyjnego, kontrolowanego przez nadrz˛ed-nego agenta replikuj ˛acego. Agenci wykonawczy rezyduj ˛a na fizycznej platfor-mie sprz˛etowej dobranej przez agenta replikuj ˛acego. Ich mo ˙zliwo´sci decyzyjne ograniczone s ˛a do doboru:

• odpowiednich warto´sci parametrów buforuj ˛acych, • stopnia zrównoleglenia przetwarzania.

Pomimo specyficznej roli ka ˙zdego agenta roboczego, współdziel ˛a oni znacz-n ˛a cz˛e´s´c zachowa ´n, w szczególno´sci sposób realizacji automatycznego stro-jenia wydajno´sci. Zbiór zaimplementowanych mo ˙zliwo´sci optymalizacyjnych poszczególnych agentów zestawiony jest w tabeli3.5.

Automatyczne Automatyczne

Cechy / sterowanie zarz ˛adzanie

Typ agenta parametrami ilo´sci ˛a buforuj ˛acymi instancji

Czytaj ˛acy plik tekstowy

Czytaj ˛acy baz˛e danych

Ładuj ˛acy plik tekstowy

Ładuj ˛acy baz˛e danych

Transformuj ˛acy nd

Koryguj ˛acy nd

Sprawdzaj ˛acy nd

Tabela 3.5: Zestawienie cech agentów (nd – nie dotyczy)

Nadrz˛ednym priorytetem ka ˙zdego agenta wykonawczego jest efektywna realizacja powierzonego mu zadania szczegółowego. Wyznaczony do´swiad-czalnie zbiór ogranicze ´n okre´sla dozwolony zakres sterowania, którego celem jest wyznaczenie suboptymalnych warto´sci parametrów w sposób dynamicz-ny. Proces ten odbywa si˛e w sposób w pełni zautomatyzowany, kontrolowany bezpo´srednio przez agentów roboczych.

3.3.1 Zakres sterowania

Przed rozpocz˛eciem realizacji zasadniczego sterowania, niezb˛edne jest okre´sle-nie jego zakresu, czyli minimalnych oraz maksymalnych warto´sci stosownych parametrów. Problem ten dotyczy zarówno rozmiaru bufora odczytu oraz za-pisu, jak i ilo´sci instancji poszczególnych agentów wykonawczych.

Z teoretycznego punktu widzenia minimalny rozmiar bufora ustawi´c mo ˙z-na ˙z-na warto´s´c 1, która jest równowa ˙z˙z-na z brakiem buforowania. Zgodnie jed-nak z obserwacjami poczynionymi podczas bada ´n praktycznych, stosowanie bardzo niskich rozmiarów bufora jest niewydajne. Minimalny rozmiar paczki danych zarówno odczytywanej, jak i zapisywanej do bazy danych ustalono na warto´s´c 50 rekordów.

Maksymalny rozmiar bufora odczytu zale ˙zny jest od dost˛epnej pami˛eci ope-racyjnej. Dla dalszych rozwa ˙za ´n ograniczono go do 100,000 rekordów.1 Górne ograniczenie bufora zapisu jest motywowane ch˛eci ˛a ograniczenia u ˙zycia zaso-bów niezb˛ednych do obsługi du ˙zych transakcji bazodanowych (ang. undo spa-ce). Dodatkowo, sterownik JDBC bazy danych Oracle pracuje poprawnie przy warto´sciach bufora nie wi˛ekszych ni ˙z 216−1 rekordów. Rozmiar ten został

przy-j˛ety jako maksymalna warto´s´c paczki danych do bazy danych.

Testy dedykowane okre´sleniu wpływu stopnia zrównoleglenia przetwa-rzania wykazały wysok ˛a zmienno´s´c efektywno´sci integracji dla małych ilo´sci współpracuj ˛acych agentów. Zmiany zachodz ˛ace podczas wykorzystania wyso-kiego stopnia zrównoleglenia nie s ˛a ju ˙z tak istotne. Minimalna ilo´s´c agentów dedykowanych do realizacji okre´slonego etapu replikacji wynosi 1. Taka sytu-acja odpowiada sekwencyjnemu przetwarzaniu zbioru danych, które okazało si˛e najbardziej efektywne w niektórych przypadkach testowych.

Zwi˛ekszanie ilo´sci agentów powoduje coraz wi˛eksze wykorzystanie zaso-bów systemowych w celu obsługi ich cyklu ˙zyciowego. ˙Zaden z przypadków testowych nie wykazał wzrostu wydajno´sci przy wykorzystaniu du ˙zej popula-cji agentów. Dodatkowo, nadmiernie zwi˛eksza si˛e wykorzystanie zasobów na komputerach współpracuj ˛acych, przykładowo wykorzystana ilo´s´c poł ˛acze ´n do bazy danych. Obserwacja ta stanowiła motywacj˛e ograniczenia maksymalnej ilo´sci populacji agentów okre´slonego rodzaju dla pojedynczego interfejsu da-nych do poziomu 50.

W momencie inicjalizacji przetwarzania, zarówno warto´sci parametrów bu-foruj ˛acych, jak i rozmiar populacji agentów okre´slonego typu, odczytywany jest z pliku konfiguracyjnego interfejsu danych. Informacje te stanowi ˛a warto´s´c po-cz ˛atkow ˛a, od której rozpoczyna si˛e samoczynne strojenie systemu.

Pliki konfiguracyjne aktualizowane s ˛a automatycznie poprzez odpowied-nich agentów wykonawczych, za ka ˙zdym razem, kiedy dokonywana jest zmia-na zmia-nastaw parametrów procesu. Taka strategia pozwala zmia-na zachowanie zmia- najlep-szych, dotychczas wyznaczonych ustawie ´n oraz na rozpocz˛ecie od nich kolejnej realizacji replikacji.

1Podczas bada ´n praktycznych dla niektórych przetestowanych konfiguracji zaobserwowano wyrzucenie wyj ˛atku przy tak du ˙zym rozmiarze bufora.

3.3.2 Przedmiot optymalizacji

Niezale ˙znie od tego czy strojeniu podlegaj ˛a parametry buforuj ˛ace, czy te ˙z po-dejmowana jest decyzja o doborze ilo´sci agentów wykonawczych, w pierwszej kolejno´sci niezb˛edne jest okre´slenie, który etap przetwarzania podlega´c powi-nien usprawpowi-nieniu. Potrzeba ta jest jednoznaczna z konieczno´sci ˛a okre´slenia wolniejszego z dwóch kolejnych etapów procesu replikacji, gdy ˙z to wła´snie od niego rozpoczyna si˛e proces optymalizacyjny.

Poszczególne etapy lokalnego procesu replikacji poł ˛aczone s ˛a poprzez bu-fory danych. Przepływ danych pomi˛edzy agentami reprezentuj ˛acymi dwa ko-lejne etapy przetwarzania zilustrowany został na diagramie3.7.

Agenci Składujący Dane Agenci Pobierający Dane Kolejka Danych

Rysunek 3.7: Przepływ danych pomi˛edzy agentami

Okre´slenie agent składuj ˛acy dane oraz agent pobieraj ˛acy dane, odnosi si˛e do perspektywy komunikacji z kolejk ˛a danych. W rozwa ˙zaniach tych agent czyta-j ˛acy dane z systemu ´zródłowego jest zawsze agentem składuj ˛acym dane, agent zapisuj ˛acy do systemu docelowego jest agentem pobieraj ˛acym dane. Agenci od-powiedzialni za transformacj˛e, korekt˛e oraz walidacj˛e przyjmuj ˛a podwójn ˛a rol˛e w zale ˙zno´sci od rozwa ˙zanego fragmentu przepływu danych cało´sciowego pro-cesu integracyjnego.

Przy tak zdefiniowanych zało ˙zeniach, wyznaczenie wolniejszego z dwóch kolejnych etapów przetwarzania polega na obserwacji stopnia zaj˛eto´sci kolejki danych. Przypadek małej ´sredniej zaj˛eto´sci kolejki odpowiada sytuacji, kiedy zbiór agentów czytaj ˛acych jest szybszy od agentów zapisuj ˛acych. Odwrotnie, prawie pełna zaj˛eto´s´c kolejki jest jednoznaczna ze zbiorem agentów składuj ˛ a-cych dane wykonuj ˛acych przetwarzanie bardziej wydajnie ni ˙z agenci je pobie-raj ˛acy. Potencjalne ustalenie si˛e kolejki w jakim´s punkcie ´srodkowym jest sta-nem przej´sciowym, do czasu zmiany warunków przetwarzania lub modyfikacji nastaw którego´s z grupy agentów czytaj ˛acych b ˛ad´z zapisuj ˛acych.

Istotne jest równie ˙z, aby rozmiar kolejki danych był na tyle du ˙zy, aby wyeli-minowa´c wpływ nieliniowo´sci czasu przetwarzania. W przeciwnym wypadku istnieje niebezpiecze ´nstwo podejmowania decyzji w oparciu o bł˛edne postrze-gania ´srodowiska wykonawczego. Stopie ´n nieliniowo´sci wydajno´sci w czasie zale ˙zy od implementacji konkretnego agenta. Du ˙z ˛a nieliniowo´s´c obserwuje si˛e

przykładowo podczas buforowanego zapisu rekordów do bazy danych, gdzie czas po´swi˛econy na buforowanie rekordów jest znacznie krótszy, w porówna-niu do czasu zapisu całej paczki danych.

3.3.3 Prosty algorytm decyzyjny

Decyzja o zmianie warto´sci parametrów buforowania, istotna dla agentów współpracuj ˛acych z bazami danych podejmowana jest w pierwsze ´nstwie do decyzji o zmianie rozmiaru populacji. Takie podej´scie motywowane jest faktem znacznie wi˛ekszego wpływu warto´sci parametrów buforuj ˛acych w stosunku do ilo´sci agentów wykonawczych na efektywno´s´c przetwarzania.

Skonstruowano prosty algorytm decyzyjny, b˛ed ˛acy wariantem przeszuki-wania binarnego. W chwili pocz ˛atkowej replikacja odbywa si˛e zgodnie z okre-´slonymi warto´sciami nastaw parametrów. Równocze´snie dokonywany jest sta-ły pomiar pr˛edko´sci przetwarzania. Pr˛edko´s´c chwilowa u´sredniana jest w bada-nym okresie czasu, stanowi ˛ac podstaw˛e do porównania z replikacj ˛a dla innych nastaw procesu.

Po upływie zadanego interwału, nast˛epuje zmiana parametrów procesu. Pa-rametry ustawiane s ˛a w połowie pomi˛edzy warto´sci ˛a bie ˙z ˛ac ˛a a warto´sci ˛a mak-symaln ˛a zadanego przedziału. Replikacja kontynuowana jest z nowymi para-metrami realizuj ˛ac jednocze´snie pomiar efektywno´sci. W chwili decyzyjnej, za-chowanie dla nowych parametrów zestawiane jest z wydajno´sci ˛a dla poprzed-niej serii pomiarowej. Na podstawie wyników podejmowana jest decyzja o kie-runku dalszego trawersowania przestrzeni mo ˙zliwych rozwi ˛aza ´n, która

zaw˛e-˙zana jest za ka ˙zdym razem o połow˛e.

Zastosowany algorytm charakteryzuje si˛e prostot ˛a działania oraz du ˙z ˛a efek-tywno´sci ˛a realizacji. Logarytmiczna zło ˙zono´s´c obliczeniowa pozwala na zba-danie dozwolonego, wcze´sniej okre´slonego zakresu parametrów buforuj ˛acych w kilkunastu krokach.

Sporym ograniczeniem powy ˙zszego rozwi ˛azania jest mo ˙zliwo´s´c wyzna-czenia jedynie lokalnego maksimum wydajno´sci. Zgodnie z przeprowadzony-mi badaniaprzeprowadzony-mi praktycznyprzeprowadzony-mi, w których wszystkie zaobserwowane przebiegi zmienno´sci charakteryzowały si˛e wyst˛epowaniem co najwy ˙zej pojedynczego maksimum lokalnego, zastosowanie powy ˙zszego podej´scia skutkuje w osi ˛ a-gni˛eciu wyniku suboptymalnego.

Poszukiwanie wydajnej liczby agentów oparto na liniowym przegl ˛adaniu zbioru dost˛epnych rozwi ˛aza ´n, dokonuj ˛ac za ka ˙zdym razem zmiany o jedn ˛a instancj˛e. W przypadku poprawy wydajno´sci realizowany jest nast˛epny krok. W przypadku pogorszenia efektywno´sci rozmiar populacji agentów danego ty-pu wraca do warto´sci poprzedniej.

W dokumencie Index of /rozprawy2/10132 (Stron 88-92)

Powiązane dokumenty