6.1 Wprowadzenie

Testowanie algorytmów jest końcową fazą ich tworzenia. Umożliwia weryfikację poprawności ich działania oraz sprawdzenie wydajności w różnych warunkach. Dzięki testom można znaleźć i spróbować usunąć słabe strony algorytmów. Możliwe staje się strojenie, czyli dobór optymalnych parametrów pracy.

Najlepszym systemem do przetestowania algorytmów jest system transakcyjny wykorzystujący replikację transakcji, ponieważ algorytmy te zostały zaprojektowane do pracy w takim środowisku. Nie mogliśmy wykorzystać rzeczywistego systemu, więc postanowiliśmy zasymulować system transakcyjny. W efekcie stało się możliwe przetestowanie algorytmów w większym zakresie zmienności parametrów środowiska i obciążenia. SRT umożliwił nam szybką zmianę testowanego algorytmu i jego parametrów. Mogliśmy łatwo zmieniać liczbę klientów, liczbę i długość transakcji oraz ilość i sposób zajmowania symulowanych zasobów.

W systemach transakcyjnych można wyróżnić dwie podstawowe klasy miar[3]. Pierwsza z nich określa, w jaki sposób są wykorzystywane zasoby systemowe. Typowym wskaźnikiem z tej klasy jest przepustowość, która mierzy pracę wykonaną przez system. Do drugiej kategorii należą miary oceniające jakość usług oferowanych przez system z punktu widzenia użytkownika. Jest to np. czas odpowiedzi systemu.

Interesujące nas atrybuty algorytmów replikacji można podzielić na takie, dla których łatwo określić mierniki wydajności, oraz na takie, które trudno poddają się precyzyjnemu pomiarowi. Zmierzyć można przepustowość replikacji, czas reakcji systemu, opóźnienie replikacji a także liczbę wycofanych transakcji. Miary te zostaną szczegółowo zdefiniowane w punkcie 6.2.3. Cechy, które trudno zmierzyć, to stabilność algorytmu, czyli zdolność algorytmu do przeciwdziałania niekontrolowanemu wzrostowi kolejki przy dowolnym obciążeniu, oraz elastyczność, którą można określić jako szybkość dostosowania się algorytmu do zmian obciążenia.



K. Kowalewski, R. Żmijewski
1999-12-17