Przetwarzanie Materializowanej Listy Agregatów rozbudowanej o bufory LRU
|
|
- Ryszard Małecki
- 7 lat temu
- Przeglądów:
Transkrypt
1 Rozdział 5 Przetwarzanie Materializowanej Listy Agregatów rozbudowanej o bufory LRU Streszczenie. Niniejszy rozdział opisuje projekt Materializowanej Listy Agregatów (MAL) rozbudowanej o bufory LRU. Przedstawia on architekturę listy i jej charakterystykę. Zaprezentowana została analiza możliwości przyspieszenia działania mechanizmu MAL poprzez wykorzystanie buforowania odczytywanych danych. Zostały przedstawione dwa rodzaje buforów LRU dostosowane do efektywnego działania MAL: podstawowy i hierarchiczny. Ostatecznie zaprezentowane zostały wyniki analizy wydajnościowej zaimplementowanego rozwiązania MAL/LRU. 1 Wstęp Szybkie reagowanie na zewnętrzne i wewnętrzne czynniki wpływające na sferę ekonomiczną, finansową czy gospodarczą jest w obecnych czasach podstawą działania i decyduje o konkurencyjności przedsiębiorstw. Nie można tego osiągnąć bez wiarygodnej informacji. Jak wskazuje praktyka czasami jednak nadmiar informacji może być równie niepożądany jak jej brak, dlatego ważne jest umiejętne segregowanie i filtrowania zbiorów danych przedsiębiorstw, by na ich podstawie można było podejmować właściwe decyzje. Obecnie dynamika rozwoju przedsiębiorstw jest tak duża, ze klasyczne metody pozyskiwania wiedzy stają się zbyt wolne i nieopłacalne. Dotychczas stosowane systemy przechowywania danych nie zapewniają decydentom odpowiedniego poziomu zadowolenia z dostarczanych informacji. Odpowiedzią na dzisiejsze potrzeby zarządzania są technologie wielowymiarowych struktur danych, których celem jest wspomaganie zarządzania przez dostarczenie właściwej informacji, właściwym ludziom, we właściwym czasie. Szybka reakcja na żądanie użytkownika jest jednym z podstawowych czynników określających jakość rozwiązania informatycznego. W przypadku systemów operujących na niewielkiej liczbie danych zagadnienie nie stanowi problemu. Rosnąca jednak liczba danych koniecznych do przetworzenia wymusza opracowywanie coraz bardziej efektywnych sposobów ich przechowywania i analizowania. Zwykle po przekroczeniu pewnej granicy liczebności danych wydajność systemów informatycznych ulega gwałtownemu pogorszeniu. Kolejną kwestią jest również dostarczenie szybkich i efektywnych mechanizmów dostępu do danych w wyżej wymienionych strukturach. Jednymi z najpopularniejszych sposobów usprawnienia dostępu do przechowywanych danych są indeksowanie i agregacja Marcin Gorawski, Marcin Grzanka Politechnika Śląska, Instytut Informatyki, ul. Akademicka 16, Gliwice, Polska Marcin.Gorawski@polsl.pl, Marcin.Grzanka@mensa.org.pl
2 M. Gorawski, M. Grzanka danych [1]. Indeksowanie w większości przypadków polega na specyficznym grupowaniu obiektów na najniższym poziomie struktury hierarchicznej. Wyższe poziomy tej struktury przechowują informacje katalogowe umożliwiające szybki dostęp do szczegółowych obiektów leżących na niższych poziomach. Agregowanie danych polega natomiast na wyliczeniu jednej lub wielu statystyk, takich jak średnia, minimum, maksimum itp., dla grup obserwacji wyznaczonych przez kategorie zmiennych grupujących. W wyniku tej procedury powstaje nowy zbiór danych, w którym jedna obserwacja odpowiada jednej kategorii zmiennej grupującej. Agregowanie w połączeniu z indeksowaniem zapewnia szybszą obsługę zapytań w systemach decyzyjnych. Kolejnym procesem podniesienia efektywności tych systemów jest materializacji agregatów polegająca na zachowywaniu raz wyliczonych agregatów do ponownego użytku [6], [7], [8]. 2 Materializowana Lista Agregatów Czas obliczania zapytań (czas uzyskania odpowiedzi na zapytanie) może zostać zoptymalizowany przez użycie mechanizmów materializacji. Materializacja to proces wstępnego wyliczania agregatów w celu minimalizacji kosztów obliczania (wykonywania) zapytań dla danego obciążenia i ograniczenia przestrzeni dyskowej. Równocześnie analiza danych w hurtowniach danych często wymaga dostarczenia zagregowanych i posortowanych danych. Są to takie operacje jak budowanie modeli dla procesów eksploracji danych (data miningowych), wsparcie dla operacji drill-down jak również wyświetlanie danych w usługach raportujących. W przypadku danych czasowych zbieranych w systemie przestrzennej hurtowni danych telemetrycznych - SDW(t) (ang. Spatial Telemetric Data Warehouse) agregaty posortowane są względem osi czasu. Najsłabszym punktem rozwiązania SDW(t) było stworzenie i zarządzanie długą listą agregatów, czyli listą odczytów liczników zagregowanych zgodnie z odpowiednim oknem czasowym. Okno czasowe jest to przedział czasu, w którym chcemy badać zużycie mediów. Stworzenie posortowanej listy jest nieskomplikowanym zadaniem w momencie, kiedy liczba danych w liście jest nieduża. Nawet, jeżeli wyliczanie agregatu jest operacją prostą polegająca na zsumowaniu kilku wartości to całkowity czas utworzenia listy może okazać się zbyt duży biorąc pod uwagę liczbę agregatów, jaką należy wyliczyć w pojedynczej liście. Złożoność ta rośnie wraz ze wzrostem liczby obliczanych danych oraz wzrostem stopnia skomplikowania procedury wyliczania agregatu. W wielu przypadkach brana jest pod uwagę częściowo lub całkowita materializacja już wyliczonych agregatów. Biorąc pod uwagę powyższe czynniki został opracowany i zaproponowany nowy sposób składowania i materializacji agregatów, który pozwala na sekwencyjne przeglądanie zagregowanych danych [2], [3], [4]. 2.1 Architektura Materializowanej Listy Agregatów Zaproponowane rozwiązanie składowania i materializacji agregatów zaprojektowane zostało w oparciu o wzorzec projektowy listy dostępnej w języku java [9], [2]. Rozwiązanie to zostało nazwane Materializowaną Listą Agregatów MAL (ang. Materialized Aggregate List). Wzorzec listy umożliwia owi przeglądanie danych za pomocą a. Klient ma również możliwość ingerencji w zawartość listy poprzez wstawiania i usuwania ele- 72
3 Przetwarzanie Materializowanej Listy Agregatów rozbudowanej o bufory LRU mentów, jak również bezpośredniego komunikowania się z listą bez wykorzystania a. Schemat architektury listy reprezentowany przez interfejs java.util.list [10] został przedstawiony na rys. 1. Lista java.util.list Rys. 1. Schemat architektury klasycznej listy dostępnej w języku Java W odróżnieniu od architektury klasycznej listy architektura Materializowanej Listy Agregatów została znacznie bardziej rozbudowana. Schemat architektury został przedstawiony na rys. 2. Materializowana Lista Agregatów Interfejs AggregateRetriever Database Aggregate Retriever Index Aggregate Retriever źródła danych Baza danych Struktura indeksująca / cache Rys. 2. Schemat podstawowej architektura Materializowanej Listy Agregatów Główną różnicą Materializowanej Listy Agregatów jest źródło danych. Klienci nie mają możliwości wstawiania danych do listy. Dane są pobierane do listy ze źródła danych, które jest przeźroczyste dla a listy i definiowane jest dla konkretnej instancji listy. Źródłem danych dla MAL może być: baza danych - dane potrzebne do zasilenia listy pobierane są bezpośrednio z bazy danych tworząc agregaty poprzez przeliczenie surowych danych, struktura indeksująca - MAL będąc składnikiem węzłów struktury indeksującej pobiera listy agregatów z niższych warstw struktury indeksującej i sumuje je. Kolejnym elementem odróżniającym Materializowaną Listę Agregatów od standardowej architektury listy jest ograniczenie bezpośredniego dostępu do danych zawartych w liście na rzecz komunikowania się z listą za pośrednictwem a. Klient MAL może komunikować się z listą tylko i wyłącznie za pośrednictwem a. Obiekt listy nie przechowuje również żadnych danych (agregatów). Jest tylko pośrednikiem pomiędzy em komunikującym się poprzez ze źródłem danych. Klient MAL tylko i wyłącznie przegląda listę, pobiera z niej agregaty i przetwarza. 73
4 M. Gorawski, M. Grzanka 3 Modyfikacja architektury Materializowanej Listy Agregatów W poprzednim rozdziale przedstawiona została dotychczasowa architektura Materializowanej Listy Agregatów. Na podstawie przeprowadzonej analizy schematu architektury MAL, wynika, iż możliwe jest przyspieszenie działania listy z wykorzystaniem buforów LRU. Aspektem, nad którym należy się zastanowić jest odpowiednie umiejscowienie bufora w architekturze Materializowanej Listy Agregatów tak, aby zagwarantować poprawne i wydajne jej działanie. Materializowana Lista Agregatów może korzystać w dotychczasowej implementacji z dwóch źródeł danych (rys. 2). Pierwszym z dostępnych źródeł jest baza danych. Jest ona wykorzystywana zarówno do odczytu surowych danych i na ich podstawie wyliczania agregatów jak również w celu odczytywania zmaterializowanych danych oraz materializacji nowo wyliczonych agregatów. Komunikacja z bazą danych jest dwustronna (występuje zarówno odczyt, jaki zapis danych). Zauważyć można również, iż znacznie częściej odbywa się odczytywanie danych niż ich zapis. Hurtownia danych (MAL) jest, bowiem zasilana danymi przez zewnętrzny proces ETL. Obliczanie operacji, które można więc przyspieszyć jest obliczenie operacji odczytu danych poprzez zastosowania bufora. Z tego powodu została podjęta decyzja o implementacji buforowania tylko danych odczytywanych. Wpływ na podjęcie decyzji o implementacji tylko jednego bufora ma również to, iż zapis danych jest operacją zachowania danych zmaterializowanych. Jest to operacja znacznie rzadziej występująca niż odczyt danych. Jest to również operacja dodatkowa, która może zostać włączona poprzez odpowiednie skonfigurowanie MAL. Zysk z takiego rozwiązania byłby minimalny biorąc pod uwagę stosunek liczby operacji zapisu do liczby operacji odczytu z bazy danych. Materializowana Lista Agregatów Interfejs AggregateRetriever Database Aggregate Retriever Index Aggregate Retriever Bufor LRU Bufor LRU źródła danych Baza danych Struktura indeksująca / cache Rys. 3. Architektura Materializowanej Listy Agregatów rozbudowanej o bufory LRU Drugim źródłem danych, z którego MAL może korzystać jest struktura indeksująca. Indeks tworzony jest na podstawie informacji zawartych w bazie danych przed pierwszym skorzystaniem z a listy. Podczas działania a listy dane przechowywane w indeksie są tylko i wyłącznie pobierane. W tym przypadku interesuje nas również tylko buforowanie danych odczytywanych ze źródła danych. Dzięki podejściu buforowania danych odczytywanych zarówno dla źródła danych, jakim jest baza danych jak i dla struktury indeksującej można ujednolicić mechanizm tworzenia bufora gwarantując spójny interfejs dla istniejących jak i możliwych w przyszłości nowych źródeł danych. 74
5 3 Bufor LRU Przetwarzanie Materializowanej Listy Agregatów rozbudowanej o bufory LRU Przechowywanie dużych struktur danych takich jak lista agregatów czy też różnego rodzaju indeksów w pamięci głównej komputera skutkuje pojawieniem się w pewnym momencie problemu braku wystarczającego rozmiaru pamięci głównej (operacyjnej). Rozwiązania takie, są, więc ograniczone rozmiarem pamięci w szczególności rozwiązania zaimplementowane w języku Java. Po przekroczeniu dostępnej pojemności pamięci następuje intensywna wymiana stron pamięci powodująca znaczny spadek wydajności rozwiązania lub błąd wykonania aplikacji. W przypadku MAL problem braku pamięci został rozwiązany poprzez zastosowanie trzech typów algorytmów wypełniania stron a listy oraz wprowadzenia ograniczenia, w którym nie wszystkie dane są od razu dostępne w pamięci [3]. Rozwiązanie to pozwala zaoszczędzić pamięć główną komputera. Jednakże dane pobierane są z pamięci pomocniczej, jaką jest dysk twardy, z którego odczyt jest wielokrotnie wolniejszy niż pobranie danych z pamięci głównej. Zaimplementowane rozwiązanie wykorzystuje bufor pamięciowy w celu zmniejszenia kosztów odwołania się do dysku twardego. Teoretyczne przyspieszenie, jakie można osiągnąć gwarantowane jest dzięki temu, że bufor przechowuje pewne elementy w pamięci i operacje odczytu tych danych przeprowadzone są przy jego wykorzystaniu. Jeżeli element znajduje się w buforze to odwołanie do niego polega na pobraniu go z pamięci głównej, co jest operacją znacznie szybszą. Jeżeli liczba przechowywanych w buforze elementów przekracza określony przez konfigurację limit, jeden z elementów listy jest usuwany, tak, aby kolejny element mógł zostać dodany. W najgorszym przypadku, żaden element nie będzie wykorzystywany dwukrotnie, co spowoduje, że wprowadzenie bufora pamięciowego spowolni działania systemu. Aby zapobiec temu problemowi należy zastosować jak najlepszą technikę wybierana elementów do usunięcia z bufora. W buforze muszą znajdować się elementy o największym prawdopodobieństwie ponownego wykorzystania usuwane elementy muszą być najmniej potrzebne. Jedną z takich technik, jest technika LRU [5]. Najstarszy element Operacja Czytaj Element, który usuwany jezt z bufora brak Zapisz brak Czytaj brak Rys. 4. Przykład działania algorytmu LRU Nazwa LRU jest skrótem od angielskiego zwrotu Least Recently Used, czyli najdawniej używany. Oznacza to, że z bufora w przypadku wystąpienia przepełnienia zostanie wybrany do usunięcia element najdawniej wykorzystywany. Implementacja programowa bufora LRU jest prosta w realizacji dzięki zastosowaniu listy i połączeniu elementów bufora w tę listę. W momencie odwołania się do elementu bufora jest on przenoszony na pierwszą pozycje listy. Jeżeli nastąpi sytuacja przepełnienia elementem usuwanym jest ostatni element listy. Przykład działania algorytmu LRU został przedstawiony na rys. 4. W pierwszym kroku odczytywana z bufora wartość to 2. Jest ona 75
6 M. Gorawski, M. Grzanka niedostępna w buforze zatem pobierana jest ze źródła zewnętrznego. Kolejny krok to zapisanie wartości 15 element o wartości 15 zostaje przeniesiony na pierwszą pozycję bufora. Następnie odczytywana jest wartość 17 z bufora. W tym przypadku następuje przepełnienie bufora i ostatnie element o wartości 22 zostaje z niego usunięty. 3.1 Podstawowa wersja bufora LRU Jak już zostało wspomniane implementacja programowa bufora LRU jest realizowalna programowo poprzez połączenie elementów bufora w listę. Na rysunku 5 została przedstawiono obrazowo architektura bufora. Jest to lista elementów o wielkości n. Każdy element listy zawiera k-ty agregat dla j-tego obiektu Agregat 2 dla obiektu 2 1 (obj1) 1 (obj2) 2 (obj2) 1 (obj4) empty Rys. 5. Podstawowa wersja bufora LRU W przypadku uruchomienia wątku wypełniania strony a (z wyłączonym procesem materializacji) wzbogaconego o bufor LRU algorytm rozszerzony jest o dodatkowy etap. Algorytm 1. Algorytmu wypełniania strony tablicy a MAL z wykorzystaniem bufora LRU (materializacja wyłączona). (Algorytm wzbogacony jest o etap pobierania elementów z bufora LRU. Jeżeli szukane dane nie znajdują się w buforze są do niego dodane) 1. Pobierz agregaty z bufora 2. Jeżeli nie są dostępne w buforze 3. Pobierz agregaty z bazy danych 4. Uzupełnij stronę tablicy a o pobrane elementy. 5. Sprawdź liczbę dostępnych agregatów w wypełnianej stronie. 6. Jeżeli liczba agregatów jest mniejsza od wielkości strony 7. Zmodyfikuj datę początkową wyliczania agregatów 8. Pobierz nowe agregaty ze źródła danych 9. Jeżeli liczba pobranych agregatów jest większa od Uzupełnij stronę a o pobrane agregaty 11. Zakończ proces wypełniania strony tablicy a. Wstępne testy wydajnościowe takiego rozwiązania bufora LRU wykazały, że w przypadku uruchomienia kilku wątków, które jednocześnie przeglądały tą samą listę za pomocą różnych ów czas pobierania i przetwarzania elementów listy drastycznie spadał. Okazało się, że problemem jest przechowywanie w buforze pojedynczych agregatów. Stąd najbardziej pesymistyczny wariant zakłada, że każdy nowo uruchomiony wątek a przeglądający listę pobiera różną liczbę agregatów z bufora (zazwyczaj zmodyfikowaną przez ostatnio operujący na liście wątek) (rys. 6). W takim przypadku za każdym 76
7 Przetwarzanie Materializowanej Listy Agregatów rozbudowanej o bufory LRU razem zapytanie do bazy jest inne, co powoduje spowolnienie działania listy w porównaniu do wersji bez bufora. Zawartość bufora 1 (obj1) Wątek 1 Zawartość bufora empty empty empty empty Zapytanie do bazy: BorderDate + TimeGap 1 (obj1) 2 (obj1) 3 (obj 1) empty empty Wątek 2 Zapytanie do bazy: BorderDate + 3 * TimeGap Rys. 6. Pesymistyczny przypadek działania algorytmu 1 z wykorzystanym buforem LRU (materializacja wyłączona) Aby zagwarantować poprawne działanie bufora i uniknąć przedstawionego przypadku została zaproponowana wersja podstawowa bufora LRU, w której jako element listy przechowywany jest obiekt zawierający kolekcję agregatów strony tablicy a. Idea przechowywania całej zawartości strony tablicy a zaczerpnięta został ze sposobu przechowywania zmaterializowanych agregatów. Materializacja, bowiem obejmuje również całą zawartość strony, a nie pojedynczego agregatu. Kolekcja agregatów strony 2 dla obiektu 2 Aggregatot Collection 1 (obj1) Aggregaor Collection 1 (obj2) Collection 2 (obj2) Collection 1 (obj4) empty Rys. 7. Zaimplementowana podstawowa wersja bufora LRU Zmaterializowane agregaty są zapisywane do bazy danych w postaci paczek danych. Każda paczka (strumień danych binarnych) przechowuje kolekcję agregatów jednej strony tablicy a. Aggregate Collection jest obiektem zawierającym wszystkie agregaty strony tablicy a. Aby nie tworzyć dwóch różnych implementacji bufora dla konfiguracji z włączoną materializacją jak i dla wyłączonej materializacji postanowiono przechowywać w elemencie listy bufora kolekcję agregatów strony tablicy a. Równocześnie z wprowadzeniem buforowania danych zmaterializowanych zmodyfikowano algorytm 1 jak niżej. Algorytm Pobierz dane zmaterializowane z bufora 2. Jeżeli nie są dostępne w buforze 3. Pobierz dane zmaterializowane z bazy danych 4. Uzupełnij stronę tablicy a o pobrane elementy. 5. Sprawdź liczbę dostępnych agregatów w wypełnianej stronie. 6. Jeżeli liczba agregatów jest mniejsza od wielkości strony 7. Zmodyfikuj datę początkową wyliczania agregatów 77
8 M. Gorawski, M. Grzanka 8. Pobierz nowe agregaty ze źródła danych 9. Jeżeli liczba pobranych agregatów jest większa od Uzupełnij stronę a o pobrane agregaty 11. Zakończ proces wypełniania strony tablicy a. Algorytm 2 został wzbogacony o pobranie danych zmaterializowanych z bufora. Jeżeli w buforze dane zmaterializowane nie zostaną znalezione algorytm sięga po zmaterializowane agregaty do bazy danych. Jednoczesne działanie obu buforów ma miejsce jedynie w przypadku częściowej materializacji danych. W takim przypadku buforowane są zmaterializowane dane oraz w wyniku potrzeby pobrania agregatów, które nie zostały zmaterializowane wykorzystywane jest również buforowanie mechanizmu pobierania danych z bazy danych. Oba bufory są niezależne od siebie oraz posiadają własne parametry konfiguracyjne. W zależności od charakterystyki systemu, w którym Materializowana Lista Agregatów zostanie uruchomiona można za pomocą konfiguracji dostosować listę i buforowanie do odpowiedniego zastosowania. 3.2 Hierarchiczna wersja bufora LRU Dzięki zastosowaniu mechanizmu buforowania danych możemy zagwarantować przyspieszenie akcji pobierania i przeglądania listy przez jej ów. Ponieważ obiektów (liczników) w hurtowni może być bardzo duża liczba (są to rzędy wielkości tysięcy) zastanowić się można czy przedstawiona architektura podstawowej wersji bufora LRU może zostać usprawniona w celu uzyskania efektywniejszego buforowania. Modyfikacja architektury podstawowej wersji bufora była oparta na analizie problemów wydajnościowych związanych z przechowywaniem pojedynczych agregatów strony tablicy a. Rozwiązaniem problemu jest przechowywanie kolekcji agregatów jako elementu listy zamiast pojedynczego agregatu. Przenosząc ten sam problem i analizę na wyższy poziom to jest na poziom hurtowni danych i tysięcy przechowywanych w niej obiektów powstała kolejna wersja bufora nazwana hierarchiczną. Posiadając jeden bufor zawierający kolekcję elementów strony tablicy a doprowadzamy do takiej samej sytuacji jak przechowywanie pojedynczego agregatu w podstawowej architekturze bufora. Wielu działających jednocześnie ów listy, którzy będą operować na różnych licznikach będzie wzajemnie wypierać elementy z bufora na rzecz przechowywania własnych. W najgorszym przypadku doprowadzić to może do sytuacji, w której y list będą tylko i wyłącznie wstawiać nowe elementy do bufora. Bufor będzie przechowywać pojedyncze elementy (o elemencie mówimy w rozumieniu kolekcji agregatów strony tablicy a) i zanim lista dla danego obiektu spróbuje odczytać wartości z bufora zostaną one usunięte. Najlepszym rozwiązaniem w tym przypadku jest, jeżeli każdy obiekt posiada własny bufor zawierający tylko i wyłącznie elementy, które są agregatami jego odczytów. Ponieważ rozwiązanie takie nie jest niemożliwe w realizacji z powodu ilości liczników, dla których dane są przechowywane należy zagwarantować, aby w pamięci znajdowały się bufory tylko dla obiektów najczęściej wykorzystywanych. Techniką zastosowaną do wyboru elementów, które mają się znaleźć w takim buforze (dokładniej, które elementy z bufora mają zostać usunięte) jest również technika LRU. Architektura takiego buforu została przedstawiona na rysunku 8. Każdy obiekt posiada własny bufor w wersji podstawowej. Bufory dla elementów listy są zgrupowane w listę o używającą technikę LRU usuwania elementów. Korzeniem bufora jest lista LRU, której 78
9 Przetwarzanie Materializowanej Listy Agregatów rozbudowanej o bufory LRU elementami są obiekty buforów przechowujących agregowane dane o pomiarach liczników. Bufor licznika nazwany liściem bufora hierarchicznego jest również kolejką LRU z tym, że (analogicznie jak w przypadku podstawowej architektury) jest to lista elementów będących kolekcją agregatów strony tablicy a. Lista identyfikatorów obiektów Object 1 Object 4 Object 2 Object 5 Collection 10 Collection 12 Collection 16 Collection 5 Collection 2 Collection 1 Aggregtor Collection 1 empty Collection 5 Collection 8 Aggregaor Collection 2 Collection 10 Collection 4 Collection 2 empty empty Kolekcja agregatów dla obiektu (licznika) 5 Collection 1 empty empty empty Rys. 8. Architektura hierarchicznego bufora LRU Zaprezentowana architektura gwarantuje, że agregaty danego licznika przechowywane są w jednej kolekcji. Obiekty reprezentujące bufory liczników są natomiast skupione w jedną listę, będącą zarazem korzeniem, który posiada zaimplementowaną technikę LRU usuwania najdawniej używanych elementów listy. 4 Analiza wydajnościowa W celu wykonania testów wydajnościowych należało zestawić odpowiednie środowisko testowe. W skład tego środowiska wchodzi aplikacja a MAL oraz system bazodanowy Oracle 10g. Ze względu na wymóg dość dużych mocy obliczeniowych oraz znacznej pojemności pamięci RAM rozdzielono aplikację a i serwer bazy danych na dwa komputery. Aplikacja a działa na systemie Windows Server 2003 oraz Java Sun 1.5. Część serwerowa uruchomiona została na systemie Windows Vista Business oraz bazie danych Oracle Database 10g Release 2 ( ) (rys. 9). Przeprowadzone eksperymenty miały na celu sprawdzenie poprawy wydajności MAL poprzez wykorzystanie mechanizmu buforowania danych. Testy zostały przeprowadzone na bazie danych zawierającej ponad 24 miliony rekordów pomiarów dla 1000 liczników. 79
10 M. Gorawski, M. Grzanka Intel Pentium M 1.86 GHz 2048 MB RAM AMD Athlon XP 1.83 GHz 1024 MB RAM Aplikacja a MAL Rys. 9. Środowisko testowe MAL/LRU Sieć LAN Baza danych Oracle Przyspieszenie [%] TRIGG SPARE RENEW Liczba miesięcy Rys. 10. Porównanie przyspieszenia buforowanego działania algorytmów wypełniania stron tablicy a dla danych niezmaterializowanych Na przedstawionym rys. 10 widać tendencję zniżkową uzyskiwanego przyspieszenia działania algorytmów MAL wraz ze wzrostem okna czasowego dla zadawanego zapytania. Wraz ze zwiększeniem zakresu okna czasowego wzrasta liczba danych pobieranych ze źródła, które muszą ulec buforowaniu. Bufor posiada ograniczoną pojemność i nie jest wstanie przetrzymywać wszystkich danych, dlatego wraz ze wzrostem przetwarzanej liczby danych spada jego wydajność. Dla maksymalnego okna czasowego, jakie zostało przetestowane (12 miesięcy) zysk z wykorzystania buforowania danych jest w dalszym ciągu znaczący i wynosi średnio 22,4% co jest bardzo satysfakcjonującym wynikiem. W przypadku algorytmu RENEW [2], [3], [4] pomiary dla okna czasowego równego jeden miesiąc zostały pominięte. Przyspieszenie zarówno dla 1-ego jak i 2-óch miesięcy oscyluje w granicach 92% - 98 %. Dzieje się tak z powodu specyfiki algorytmu RENEW. Zasada jego działania polega na wypełnieniu wszystkich stron tablicy a przed przystąpieniem do przeglądania listy przez a. Dla obu podanych zakresów uzyskanie tak dużego przyspieszenie spowodowane było tym, że ustawiony rozmiar bufora pozwalał na zbuforowanie w pamięci danych potrzebnych do wypełnienia wszystkich stron. Analizując natomiast zestawienie otrzymanych wyników dla danych materializowanych nie można jednoznacznie wskazać tendencji zniżkowej wraz ze zmianą okna czasowego zapytania. Można jedynie stwierdzić, że średnie przyspieszenie dla danych materializowanych oscyluje w granicach od 5% do 10%. Porównując wyniki testów otrzymanych dla danych niezmaterializowanych z wynikami na danych zmaterializowanych widać znaczącą różnicę w uzyskanym przyspieszeniu. Dla danych zmaterializowanych średnie przyspieszenie z przeprowadzonych testów wynosi 8%. W porównaniu do rezultatu 22,4% dla danych niezmaterializowanych jest to zdecydowania słabszy wynik. Jednakże jest on dalej satysfakcjonujący. Duża różnica w uzyskanych wynikach wynika z faktu, iż w przypadku pobierania danych zmaterializowanych nie są wykonywane żadne operacje wyliczania agregatów, które mają miejsce w przypadku da- 80
11 Przetwarzanie Materializowanej Listy Agregatów rozbudowanej o bufory LRU nych niezmaterializowanych. Najbardziej obciążającą operacją w tym przypadku jest pobranie zmaterializowanych danych z tabeli bazy danych dedykowanej do ich przechowywania. Z rys. 11 wynik znaczący spadek wydajności z wykorzystaniem buforowania danych dla algorytmu RENEW w sytuacji, gdy okno czasowe zapytania jest z zakresu 1-2 miesięcy. Dopiero przy oknie czasowym równym cztery i więcej miesięcy widoczne jest przyspieszenie działania listy. Spowodowane jest to dodatkowym narzutem czasowym potrzebnym na sprawdzenie czy dane znajdują się w buforze oraz optymalizatorem zapytań bazy danych Oracle. 15 TRIGG SPARE RENEW Przyspieszenie [%] Liczba miesięcy Rys. 11. Porównanie przyspieszenia buforowanego działania algorytmów wypełniania stron tablicy a dla danych zmaterializowanych Po przeanalizowaniu wyników oraz przebiegu działania testu okazało się, że dodatkowy narzut czasowy związany ze sprawdzaniem czy dane znajdują się w buforze występuje podczas pierwszych odwołań do bufora (upraszczając można przyjąć, że podczas wypełniania pierwszej strony tablicy a). Dane nie znajdują się jeszcze w buforze, co skutkuje nadmiarowością czasową włączonego buforowania. Wątki uruchamiane są co 20ms, natomiast pierwszy odczyt danych z bazy trwa około ms. Kolejne zapytania do bazy danych wykonują się ze znacznie większa prędkością rzędu od 10 do 50 ms (dzięki zastosowaniu mechanizmów optymalizacji bazy danych Oracle). Widzimy zatem, że wraz ze wzrostem liczby danych buforowanie w przypadku algorytmu RENEW jest opłacalne. Przy małej liczbie danych tracimy przyspieszenia na rzecz nadmiarowości sprawdzania występowania danych w buforze. Celem kolejnego testu było sprawdzenie wpływu pojemności bufora LRU na przyspieszenie działania listy (rys. 12). Analizując wyniki widać, że zmiana wielkości bufora ma wpływ na przyspieszenie działania MAL zarówno dla danych niezmaterializowanych, jak i materializowanych. Zwiększanie pojemności bufora powoduje wzrost przyspieszenia aż do momentu granicznego, po przekroczeniu, którego przyspieszenie już nie wzrasta, lecz ponownie maleje. W przeprowadzonym teście dla danych zmaterializowanych próg ten można określić jako rozmiar bufora równy 55. Dla danych niezmaterializowanych próg ten można określić jako wartość 75 dla rozmiaru bufora. Po przekroczeniu wskazanych wartości progowych przyspieszenie działania listy maleje z powodu coraz większego narzutu czasowego związanego z wyszukiwaniem danych w buforze. Progi te oczywiście są zależne od charakterystyki systemu, w jakim lista działa. 81
12 M. Gorawski, M. Grzanka Przyspieszenie [%] Buforowany MAL Buforowany MAL + mat Pojemność bufora Rys. 12. Wpływ pojemności bufora na przyspieszenie działania listy (dla algorytmu wypełniania stron SPARE) Ostatnim testem było porównanie działania wersji hierarchicznej bufora z wersją podstawową. Wyniki zostały przedstawione na rys. 13. Wykorzystanie hierarchicznego buforowania danych dodatkowo przyspiesza działanie listy. Można zauważyć również, że wraz ze wzrostem liczby przetwarzanych danych maleje uzyskane przyspieszenie działania MAL. Jednakże nie dyskryminuje to rozwiązania hierarchicznego podejścia, wręcz przeciwnie pokazuje, że warto wykorzystać ten typ bufora. W przypadku mniejszej liczby danych do przetworzenia zyskujemy na czasie, natomiast w przypadku większej liczby danych co najważniejsze nie tracimy na wydajności MAL simple cache hierarchical cache 50 Czas [s] Liczba miesięcy Rys. 13. Porównanie czasu działania MAL z wykorzystaniem podstawowej i hierarchicznej wersji bufora dla algorytmu SPARE 5 Podsumowanie W niniejszym rozdziale została przedstawiona rozbudowana architektura Materializowanej Listy Agregatów. Na bazie istniejącej architektury zaproponowana została zmodyfikowana architektura MAL wzbogacona o buforowanie danych pobieranych ze źródła danych. Przedstawione zostały dwa typy buforów LRU: podstawowy przechowujący kolekcje agregatów strony tablicy a oraz wersja hierarchiczna jako udoskonalenie wersji podstawowej przyspieszające jej działanie. W celu udowodnienia efektywności stworzonego rozwiązania przeprowadzona została analiza wydajnościowo. Systemem, w którym implementacja rozwiązania została wykonana i przeprowadzono testy jest opracowana przez zespół APAS przestrzenna hurtownia da- 82
13 Przetwarzanie Materializowanej Listy Agregatów rozbudowanej o bufory LRU nych telemetrycznych SDW(t), w której Materializowana Lista Agregatów jest wykorzystywana. Testy jednoznacznie wskazały, że wykorzystując zaimplementowane rozwiązanie buforowania danych można oczekiwać przyspieszenia działania listy MAL/LRU rzędu od 5-ciu do nawet 50-ciu procent w przypadku wyłączonej materializacji danych oraz rzędu od 5-ciu do około 15-tu procent, jeżeli materializacja agregatów jest włączona. Została również dokonana analiza porównawcza podstawowej wersji bufora z hierarchiczną. Wyniki testów wykazały, iż wykorzystanie hierarchicznej wersji bufora może dodatkowo przyspieszyć działanie listy. Kierunkiem dalszych badań może być integracja cache z drugim typem źródła danych to jest strukturą indeksującą. Literatura 1. Golfarelli Matteo, Rizzi Stefano, Salteralli Ettore: Index Selection for data warehousing. VLDB, pp , Athens, Marcin Gorawski, Rafał Malczok: On Efficient Storing and Processing of Long Aggregate Lists. Proceedings of the 7th International Conference Data Warehousing and Knowledge Discovery (DaWak2005, LNCS 3589), Copenhagen, Denmark Marcin Gorawski: Złożoność czasowa algorytmów wypełniania stron w metodzie materializowanej listy agregatów. II Krajowa Konferencja Naukowa. Technologie Przetwarzania Danych, ISBN , Wyd. Politechniki Poznańskiej, Poznań, pp , Marcin Gorawski, Rafał Malczok: Comparison of Two Approaches to Processing of Long Aggregates Lists in Spatial Data Warehouses, Annales Universitatis Marie Curie-Skłodowska Secti AI Informatica, ISSN , pp , (2006). 5. Jesper Holm Olsen, Søren Christian Skov: Cache-Oblivious Algorithms in Practice. Department of Computer Science University of Copenhagen, December 2nd, Theodoratos Dimitri, Bouzeghoub Mokrane: A general framework for the view selection problem for data warehouse design and evolution. DOLAP, McLean, Baralis E, Paraboshi S, Teniente E: Materialized view selection in multidimensional database. VLDB, pp , Athens, Gupta Himanshu: Selection of Views to Materialize in a Data Warehouse. ICDT, pp , Bruce Eckel: Thinking In Java. Wydanie 3, Helion Java 5 SDK, Standard Edition, Documentation, Sun Microsystems,
14
Złożoność czasowa algorytmów wypełniania stron w metodzie materializowanej listy agregatów
Złożoność czasowa algorytmów wypełniania stron w metodzie materializowanej listy agregatów Marcin Gorawski 1 Streszczenie: Materializowana Lista Agregatów (MAL) pozwala efektywnie przechowywać i przetwarzać
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna
Bardziej szczegółowoHurtownie danych. Wstęp. Architektura hurtowni danych. http://zajecia.jakubw.pl/hur CO TO JEST HURTOWNIA DANYCH
Wstęp. Architektura hurtowni. Jakub Wróblewski jakubw@pjwstk.edu.pl http://zajecia.jakubw.pl/hur CO TO JEST HURTOWNIA DANYCH B. Inmon, 1996: Hurtownia to zbiór zintegrowanych, nieulotnych, ukierunkowanych
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki
Bardziej szczegółowoStrojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i
VI Seminarium PLOUG Warszawa Styczeñ 2003 Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i Marcin Przepiórowski Strojenie systemu Linux pod kątem serwera bazy danych Oracle 9i 7 1. Wstęp
Bardziej szczegółowoDHL CAS ORACLE Wymagania oraz instalacja
DHL CAS ORACLE Wymagania oraz instalacja Opis: Niniejszy dokument opisuje wymagania niezbędne do instalacji bazy danych DHL CAS ORACLE. Przedstawia również sam proces instalacji. Przeznaczony jest dla
Bardziej szczegółowoUsługi analityczne budowa kostki analitycznej Część pierwsza.
Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.
Bardziej szczegółowoWprowadzenie do technologii Business Intelligence i hurtowni danych
Wprowadzenie do technologii Business Intelligence i hurtowni danych 1 Plan rozdziału 2 Wprowadzenie do Business Intelligence Hurtownie danych Produkty Oracle dla Business Intelligence Business Intelligence
Bardziej szczegółowoIndeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na
Techniki indeksowania w eksploracji danych Maciej Zakrzewicz Instytut Informatyki Politechnika Poznańska Plan prezentacji Zastosowania indeksów w systemach baz danych Wprowadzenie do metod eksploracji
Bardziej szczegółowoStronicowanie w systemie pamięci wirtualnej
Pamięć wirtualna Stronicowanie w systemie pamięci wirtualnej Stronicowanie z wymianą stron pomiędzy pamięcią pierwszego i drugiego rzędu. Zalety w porównaniu z prostym stronicowaniem: rozszerzenie przestrzeni
Bardziej szczegółowoWydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1
Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci
Bardziej szczegółowoAUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7
AUREA BPM Oracle TECNA Sp. z o.o. Strona 1 z 7 ORACLE DATABASE System zarządzania bazą danych firmy Oracle jest jednym z najlepszych i najpopularniejszych rozwiązań tego typu na rynku. Oracle Database
Bardziej szczegółowoInstrukcja instalacji i obsługi programu Szpieg 3
COMPUTER SERVICE CENTER 43-300 Bielsko-Biała ul. Cieszyńska 52 tel. +48 (33) 819 35 86, 819 35 87, 601 550 625 Instrukcja instalacji i obsługi programu Szpieg 3 wersja 0.0.2 123 SERWIS Sp. z o. o. ul.
Bardziej szczegółowoLEKCJA TEMAT: Zasada działania komputera.
LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem
Bardziej szczegółowoSzpieg 2.0 Instrukcja użytkownika
Szpieg 2.0 Instrukcja użytkownika Spis treści: Wstęp: 1. Informacje o programie 2. Wymagania techniczne Ustawienia: 3. Połączenie z bazą danych 4. Konfiguracja email 5. Administracja Funkcje programu:
Bardziej szczegółowoSystemy operacyjne III
Systemy operacyjne III WYKŁAD Jan Kazimirski Pamięć wirtualna Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego
Bardziej szczegółowoSYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 005 Plik wymiany Pamięć wirtualna 2 SO i SK/WIN Plik wymiany - rodzaj pamięci wirtualnej komputerów. Plik ten służy do tymczasowego przechowywania
Bardziej szczegółowoAutor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki
Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki Cel Konfiguracja i testowanie serwera WWW Apache w celu optymalizacji wydajności. 2/25 Zakres Konfigurowanie serwera Apache jako wydajnego
Bardziej szczegółowoOSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 20.11.2002 Algorytmy i Struktury Danych PIŁA ZŁOŻONE STRUKTURY DANYCH C za s tw or ze nia s tr uk tur y (m s ) TWORZENIE ZŁOŻONYCH STRUKTUR DANYCH: 00 0
Bardziej szczegółowoSystem plików warstwa fizyczna
System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked
Bardziej szczegółowoSystem plików warstwa fizyczna
System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka
Bardziej szczegółowoSystem plików warstwa fizyczna
System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności
Bardziej szczegółowoSSI Katalog. Program do katalogowania zawartości dysków. Dariusz Kalinowski
1.) Wymagania sprzętowe: SSI Katalog Program do katalogowania zawartości dysków Dariusz Kalinowski - System operacyjny: Windows 2000 lub Windows xp - Procesor minimum Pentium 1Ghz - Pamięć RAM minimum
Bardziej szczegółowoSYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM
Bardziej szczegółowoPODSTAWY BAZ DANYCH. 19. Perspektywy baz danych. 2009/2010 Notatki do wykładu "Podstawy baz danych"
PODSTAWY BAZ DANYCH 19. Perspektywy baz danych 1 Perspektywy baz danych Temporalna baza danych Temporalna baza danych - baza danych posiadająca informację o czasie wprowadzenia lub czasie ważności zawartych
Bardziej szczegółowoSQL SERVER 2012 i nie tylko:
SQL SERVER 2012 i nie tylko: Wstęp do planów zapytań Cezary Ołtuszyk coltuszyk.wordpress.com Kilka słów o mnie Starszy Administrator Baz Danych w firmie BEST S.A. (Bazy danych > 1TB) Konsultant z zakresu
Bardziej szczegółowoOSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000
Bardziej szczegółowoAlgorytmy decyzyjne będące alternatywą dla sieci neuronowych
Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Piotr Dalka Przykładowe algorytmy decyzyjne Sztuczne sieci neuronowe Algorytm k najbliższych sąsiadów Kaskada klasyfikatorów AdaBoost Naiwny
Bardziej szczegółowoWydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1
Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Motywacja - memory wall Krzysztof Banaś, Obliczenia wysokiej wydajności. 2 Organizacja pamięci Organizacja pamięci:
Bardziej szczegółowoProgramowanie MorphX Ax
Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn
Bardziej szczegółowoModele danych - wykład V. Zagadnienia. 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie fajne WPROWADZENIE
Modele danych - wykład V Paweł Skrobanek, C-3 pok. 321 pawel.skrobanek@pwr.wroc.pl oprac. Wrocław 2006 Zagadnienia 1. Wprowadzenie 2. MOLAP modele danych 3. modele danych 4. Podsumowanie 5. Zadanie fajne
Bardziej szczegółowoInstalacja aplikacji
1 Instalacja aplikacji SERTUM... 2 1.1 Pobranie programu z Internetu... 2 1.2 Instalacja programu... 2 1.3 Logowanie... 3 2 Instalacja aplikacji RaportNet... 4 2.1 Pobranie programu z Internetu... 4 2.2
Bardziej szczegółowoINDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH
INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH 1. Czym jest eksploracja danych Eksploracja danych definiowana jest jako zbiór technik odkrywania nietrywialnych zależności i schematów w dużych
Bardziej szczegółowoSkalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności
Bardziej szczegółowoHurtownie danych. Przetwarzanie zapytań. http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU
Hurtownie danych Przetwarzanie zapytań. Jakub Wróblewski jakubw@pjwstk.edu.pl http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU Magazyny danych operacyjnych, źródła Centralna hurtownia danych Hurtownie
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych ĆWICZENIE 2 - WYBRANE ZŁOŻONE STRUKTURY DANYCH - (12.3.212) Prowadząca: dr hab. inż. Małgorzata Sterna Informatyka i3, poniedziałek godz. 11:45 Adam Matuszewski, nr 1655 Oliver
Bardziej szczegółowoPodstawy Informatyki. Metody dostępu do danych
Podstawy Informatyki c.d. alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Bazy danych Struktury danych Średni czas odszukania rekordu Drzewa binarne w pamięci dyskowej 2 Sformułowanie
Bardziej szczegółowoUNIFON podręcznik użytkownika
UNIFON podręcznik użytkownika Spis treści: Instrukcja obsługi programu Unifon...2 Instalacja aplikacji Unifon...3 Korzystanie z aplikacji Unifon...6 Test zakończony sukcesem...9 Test zakończony niepowodzeniem...14
Bardziej szczegółowoAkademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel
Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Problem magazynowania i przetwarzania wielkoformatowych map i planów geologicznych. Promotor: dr inż. Adam Piórkowski Autorzy: Jakub Osiadacz
Bardziej szczegółowoGalileo - encyklopedia internetowa Plan testów
Galileo - encyklopedia internetowa Plan testów Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Matek Sobierajski 5 czerwca 2006 1 Spis treści 1 Wprowadzenie 3 1.1 Cel..........................................
Bardziej szczegółowoAnaliza ilościowa w przetwarzaniu równoległym
Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1 Analiza ilościowa w przetwarzaniu równoległym 10. Analiza ilościowa w przetwarzaniu równoległym...2 10.1 Kryteria efektywności przetwarzania równoległego...2
Bardziej szczegółowoUsługa archiwizacji danych w systemie Eureca. Marek Jelenik CONTROLLING SYSTEMS sp. z o.o.
Usługa archiwizacji danych w systemie Eureca Marek Jelenik CONTROLLING SYSTEMS sp. z o.o. Na czym polega usługa archiwizacji danych w systemie Eureca? 2012 2013 2014 2015 Przed archiwizacją SQL OLAP BAZA
Bardziej szczegółowoBiuletyn techniczny. CDN OPT!MA 8.5 Wskazówki dotyczące instalacji programu. Copyright 2006 COMARCH SA
Biuletyn techniczny CDN OPT!MA 8.5 Wskazówki dotyczące instalacji programu Copyright 2006 COMARCH SA Spis treści 1 SPIS TREŚCI...2 2 DRIVER ODBC POWODUJĄCY BŁĄD PRZY WYKONYWANIU WYDRUKÓW REPORT WRITER
Bardziej szczegółowoDziałanie komputera i sieci komputerowej.
Działanie komputera i sieci komputerowej. Gdy włączymy komputer wykonuje on kilka czynności, niezbędnych do rozpoczęcia właściwej pracy. Gdy włączamy komputer 1. Włączenie zasilania 2. Uruchamia
Bardziej szczegółowoModyfikacja algorytmów retransmisji protokołu TCP.
Modyfikacja algorytmów retransmisji protokołu TCP. Student Adam Markowski Promotor dr hab. Michał Grabowski Cel pracy Celem pracy było przetestowanie i sprawdzenie przydatności modyfikacji klasycznego
Bardziej szczegółowoPodstawy programowania 2. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 2 Podstawy programowania 2 Temat: Zmienne dynamiczne tablica wskaźników i stos dynamiczny Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Tablice wskaźników Tablice
Bardziej szczegółowoBazy danych 2. Wykład 1
Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu
Bardziej szczegółowoTeoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 10a: O złożoności obliczeniowej raz jeszcze. Złożoność zamortyzowana Model danych zewnętrznych i algorytmy obróbki danych 1 Złożoność zamortyzowana W wielu sytuacjach
Bardziej szczegółowoHurtownie danych. 31 stycznia 2017
31 stycznia 2017 Definicja hurtowni danych Hurtownia danych wg Williama Inmona zbiór danych wyróżniający się następującymi cechami uporządkowany tematycznie zintegrowany zawierający wymiar czasowy nieulotny
Bardziej szczegółowoRegulacja dwupołożeniowa (dwustawna)
Regulacja dwupołożeniowa (dwustawna) I. Wprowadzenie Regulacja dwustawna (dwupołożeniowa) jest często stosowaną metodą regulacji temperatury w urządzeniach grzejnictwa elektrycznego. Polega ona na cyklicznym
Bardziej szczegółowoHURTOWNIE DANYCH I BUSINESS INTELLIGENCE
BAZY DANYCH HURTOWNIE DANYCH I BUSINESS INTELLIGENCE Akademia Górniczo-Hutnicza w Krakowie Adrian Horzyk horzyk@agh.edu.pl Google: Horzyk HURTOWNIE DANYCH Hurtownia danych (Data Warehouse) to najczęściej
Bardziej szczegółowoPodstawy teoretyczne baz danych. Recovery Transakcyjne odtwarzanie bazy danych po awarii
Podstawy teoretyczne baz danych Recovery Transakcyjne odtwarzanie bazy danych po awarii Cel odtwarzania Podstawowym celem mechanizmów transakcyjnego odtwarzania bazy danych po awarii jest odtworzenie spójnego
Bardziej szczegółowoAdministracja i programowanie pod Microsoft SQL Server 2000
Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Optymalizacja zapytań Pobieranie planu wykonania Indeksy i wydajność - 1 - Zadania optymalizatora
Bardziej szczegółowoBazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania
Plan wykładu Bazy danych Wykład 10: Fizyczna organizacja danych w bazie danych Model logiczny i model fizyczny Mechanizmy składowania plików Moduł zarządzania miejscem na dysku i moduł zarządzania buforami
Bardziej szczegółowoKasy Fiskalne Lublin Analityk
Kasy Fiskalne Lublin Analityk http://sklep.soft-tec.lublin.pl/produkt/analityk Producent Cena Cena netto Insert 984.00 PLN 800.00 PLN Analityk to system wspomagania decyzji, który opiera się na najnowszych
Bardziej szczegółowowykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK
wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK 1 2 3 Pamięć zewnętrzna Pamięć zewnętrzna organizacja plikowa. Pamięć operacyjna organizacja blokowa. 4 Bufory bazy danych. STRUKTURA PROSTA
Bardziej szczegółowoBudowa systemu wspomagającego podejmowanie decyzji. Metodyka projektowo wdrożeniowa
Budowa systemu wspomagającego podejmowanie decyzji Metodyka projektowo wdrożeniowa Agenda Systemy wspomagające decyzje Business Intelligence (BI) Rodzaje systemów BI Korzyści z wdrożeń BI Zagrożenia dla
Bardziej szczegółowoWykład I. Wprowadzenie do baz danych
Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles
Bardziej szczegółowoBudowa Mikrokomputera
Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,
Bardziej szczegółowosprowadza się od razu kilka stron!
Bazy danych Strona 1 Struktura fizyczna 29 stycznia 2010 10:29 Model fizyczny bazy danych jest oparty na pojęciu pliku i rekordu. Plikskłada się z rekordów w tym samym formacie. Format rekordujest listą
Bardziej szczegółowoSystemy OLAP II. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska
Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr letni 2006/07 Plan wykładu Systemy baz
Bardziej szczegółowoGrzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat
Grzegorz Ruciński Warszawska Wyższa Szkoła Informatyki 2011 Promotor dr inż. Paweł Figat Cel i hipoteza pracy Wprowadzenie do tematu Przedstawienie porównywanych rozwiązań Przedstawienie zalet i wad porównywanych
Bardziej szczegółowoModele danych - wykład V
Modele danych - wykład V Paweł Skrobanek, C-3 pok. 323 pawel.skrobanek@pwr.wroc.pl oprac. Wrocław 2006 Zagadnienia 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie
Bardziej szczegółowoWyszukiwanie plików w systemie Windows
1 (Pobrane z slow7.pl) Bardzo często pracując na komputerze prędzej czy później łapiemy się na pytaniu - Gdzie jest ten plik? Zapisujemy i pobieramy masę plików i w nawale pracy pewne czynności są wykonywane
Bardziej szczegółowoZa pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).
Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z
Bardziej szczegółowoPamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4
Pamięć wirtualna Przygotował: Ryszard Kijaka Wykład 4 Wstęp główny podział to: PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne,
Bardziej szczegółowoTemat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
Bardziej szczegółowoStruktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami
Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016
Bardziej szczegółowoInformatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java
Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny
Bardziej szczegółowoTEST BETA PAMIĘCI PODRĘCZNEJ USB W APLIKACJI PRZYSPIESZ KOMPUTER - INSTRUKCJA
TEST BETA PAMIĘCI PODRĘCZNEJ USB W APLIKACJI PRZYSPIESZ KOMPUTER - INSTRUKCJA Aby wykonać wszystkie etapy testu PAMIĘCI PODRĘCZNEJ USB, powtórz wszystkie z poniższych kroków. Aby pomyślnie zakończyć test
Bardziej szczegółowoDokumentacja aplikacji Szachy online
Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja
Bardziej szczegółowoForum Client - Spring in Swing
Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy
Bardziej szczegółowoTabela wewnętrzna - definicja
ABAP/4 Tabela wewnętrzna - definicja Temporalna tabela przechowywana w pamięci operacyjnej serwera aplikacji Tworzona, wypełniana i modyfikowana jest przez program podczas jego wykonywania i usuwana, gdy
Bardziej szczegółowoQUERY język zapytań do tworzenia raportów w AS/400
QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora
Bardziej szczegółowoProblemy niezawodnego przetwarzania w systemach zorientowanych na usługi
Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska Plan prezentacji 1 Architektura
Bardziej szczegółowoBaza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny.
PI-14 01/12 Baza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny.! Likwidacja lub znaczne ograniczenie redundancji (powtarzania się) danych! Integracja danych!
Bardziej szczegółowo< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >
Typy indeksów Indeks jest zakładany na atrybucie relacji atrybucie indeksowym (ang. indexing field). Indeks zawiera wartości atrybutu indeksowego wraz ze wskaźnikami do wszystkich bloków dyskowych zawierających
Bardziej szczegółowoEGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA
EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA POZIOM ROZSZERZONY FORMUŁA OD 2015 ( NOWA MATURA ) ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ MIN-R1,R2 MAJ 2018 Uwaga: Akceptowane są wszystkie odpowiedzi
Bardziej szczegółowoReguły plików cookies witryny i usług internetowych tsop.pl
Reguły plików cookies witryny i usług internetowych tsop.pl Data publikacji dokumentu: 1 czerwca 2014 Spis treści 1 Wstęp...2 2 Definicje...2 2.1 Administrator...2 2.2 Cookies...2 2.3 Cookies Administratora
Bardziej szczegółowoPAMIĘCI. Część 1. Przygotował: Ryszard Kijanka
PAMIĘCI Część 1 Przygotował: Ryszard Kijanka WSTĘP Pamięci półprzewodnikowe są jednym z kluczowych elementów systemów cyfrowych. Służą do przechowywania informacji w postaci cyfrowej. Liczba informacji,
Bardziej szczegółowoTadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski
: idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski
Bardziej szczegółowoInstalacja SQL Server Express. Logowanie na stronie Microsoftu
Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy
Bardziej szczegółowoInstrukcja użytkownika. Aplikacja dla Comarch Optima
Instrukcja użytkownika Aplikacja dla Comarch Optima Instrukcja użytkownika Aplikacja dla Comarch Optima Wersja 1.0 Warszawa, Sierpień 2015 Strona 2 z 12 Instrukcja użytkownika Aplikacja dla Comarch Optima
Bardziej szczegółowoSpecyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach)
Specyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach) 1. Wstęp: 1.1. Cel. Niniejszy dokument przestawia specyfikację wymagań systemowych (zarówno funkcjonalnych jak i niefunkcjonalnych)
Bardziej szczegółowoInstrukcja użytkownika. Aplikacja dla WF-Mag
Instrukcja użytkownika Aplikacja dla WF-Mag Instrukcja użytkownika Aplikacja dla WF-Mag Wersja 1.0 Warszawa, Kwiecień 2015 Strona 2 z 13 Instrukcja użytkownika Aplikacja dla WF-Mag Spis treści 1. Wstęp...4
Bardziej szczegółowoSystem. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.
System FOKUS Instalacja bazy danych MySQL Autor : Piotr Zielonka tel. 601 99-73-79 pomoc@zielonka.info.pl Piotrków Tryb., sierpień 2018r. W wersji 2018.7.0 systemu FoKus wprowadzono funkcje umożliwiające
Bardziej szczegółowowhi te działania na dużych zbiorach danych Clementine Server
działania na dużych zbiorach danych Clementine Server white paper SPSS działania na dużych zbiorach danych Wzrost wydajności z wykorzystaniem drążenia danych Wydajność procesu drążenia danych jest mierzona
Bardziej szczegółowoWydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1
Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci
Bardziej szczegółowoDysk twardy kontra dysk SSDNow V+ serii 200 o pojemności 240GB firmy Kingston: test
Dysk twardy kontra dysk SSDNow V+ serii 200 o pojemności 240GB firmy Kingston: test porównawczy Zawartość Dysk twardy kontra dysk SSDNow V+ serii 200 o pojemności 240GB firmy Kingston: test porównawczy...1
Bardziej szczegółowo43 Pamięci półprzewodnikowe w technice mikroprocesorowej - rodzaje, charakterystyka, zastosowania
43 Pamięci półprzewodnikowe w technice mikroprocesorowej - rodzaje, charakterystyka, zastosowania Typy pamięci Ulotność, dynamiczna RAM, statyczna ROM, Miejsce w konstrukcji komputera, pamięć robocza RAM,
Bardziej szczegółowoMazowiecki Elektroniczny Wniosek Aplikacyjny
Mazowiecki Elektroniczny Wniosek Aplikacyjny Generator Offline Instrukcja użytkownika Problemy z aplikacją można zgłaszad pod adresem: zgloszenie@mazowia.eu SPIS TREŚCI Zawartość 1 Instalacja Generatora
Bardziej szczegółowoDokument Detaliczny Projektu
Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej
Bardziej szczegółowoInstrukcja użytkownika
Instrukcja użytkownika Zandro 1.5.5 1 Metryka dokumentu Autor: Tomasz Krówczyński Liczba stron: 14 Data utworzenia: 21-07-2014 Rewizja: 67 HISTORIA ZMIAN Data Autor Wersja Zmiany 21-07-2014 Tomasz Krówczyński
Bardziej szczegółowoREFERAT PRACY DYPLOMOWEJ
REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany
Bardziej szczegółowoWielowymiarowy model danych
Plan wykładu Wielowymiarowy model danych 1. Model danych 2. Analiza wielowymiarowa 3. Model wielowymiarowy: koncepcja wymiarów i faktów 4. Operacje modelu wielowymiarowego 5. Implementacje modelu wielowymiarowego:
Bardziej szczegółowoWykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa
Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Instalacja roli kontrolera domeny, Aby zainstalować rolę kontrolera domeny, należy uruchomić Zarządzenie tym serwerem, po czym wybrać przycisk
Bardziej szczegółowoNowinkach technologicznych procesorów
Elbląg 22.04.2010 Nowinkach technologicznych procesorów Przygotował: Radosław Kubryń VIII semestr PDBiOU 1 Spis treści 1. Wstęp 2. Intel Hyper-Threading 3. Enhanced Intel Speed Technology 4. Intel HD Graphics
Bardziej szczegółowoRozkład pracy w biurze rachunkowym Organizacja pracy przed i po wdrożeniu SaldeoSMART Proces wdrożenia Efekty wdrożenia SaldeoSMART
Strona 1 z 11 Szanowni Państwo, Specjalnie dla Państwa przygotowaliśmy raport, który analizuje i przedstawia efekty wdrożenia SaldeoSMART w Biurach Rachunkowych. Prezentowane dane przedstawiają stan przed
Bardziej szczegółowoArchitektura i administracja systemów operacyjnych
Architektura i administracja systemów operacyjnych Wykład 1 Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Informacje wstępne Prowadzący
Bardziej szczegółowoZłożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego
Bardziej szczegółowo