====== Tematy Projektów ZTB 2015 ====== ===== Technologie ===== Na każdym stanowisku należy zainstalować i skonfigurować następujące technologie. System operacyjny: * Ubuntu 15.10. Bazy danych: * Hadoop, * Riak, * CouchDB, * MongoDB, * Postgres-XC. Każde stanowisko składa się z 2 komputerów pracujących w klastrze na poziomie technologii bazodanowych. Rodzaj klasteryzacji zależy od konkretnej technologii. Każde stanowisko winno być połączone w klaster z dokładnie jednym, innym stanowiskiem. ===== Podział na grupy ===== 10 grup, każda grupa 1 stanowisko tj. 2 komputery. ===== Dokumentacja ===== Dokumentacja wstępna przy rozpoczęciu projektu. - Lista studentów z podziałem na grupy. - Lista adresów MAC z informacją o grupie i nazwiskiem osoby odpowiedzialnej za konfiguracje stanowiska. Dokumentacja finalna. Dla każdej z grup. - Opis sprzętu (CPU, dysk, RAM, sieć). - Opis konfiguracji OS. - Opis instalacji BD. - Opis konfiguracji BD, wraz z uzasadnieniem wyboru konkretnej metody klasteryzacji dla każdej z baz danych. - Opis, projekt i implementacja generatora ruchu dla eksperymentów. - Opis procesu przeprowadzania eksperymentów. - Interpretacja wyników eksperymentów. - Podział pracy pomiędzy członków grupy. ===== Wymagania dotyczące eksperymentów ===== Dane testowe weryfikujące wydajność rozwiązań muszą charakteryzować się co następuje. * Wolumen: przynajmniej 40 000 rekordów. * Pojedynczy rekord testujący zawiera następujące dane: * date/timestamp, z dokładnością do 1ms, * URI, wielkość 2kB, * 4 wielkości całkowitoliczbowe, 64b każda, * 4 wielkości zmiennoprzecinkowe, 64b każda, * tekst, 32kB. Wyniki: * ilość rekordów na sekundę * średni czas transmisji rekordu * mediana czasu transmisji rekordu * najkrótszy czas transmisji rekordu * najdłuższy czas transmisji rekordu * obciążenie I/O * obciążenie CPU * zajętość systemu plików w stanie stabilnym (po wykonaniu eksperymentu) ==== Eksperyment 1 (wo) ==== * Zapis testowego strumienia danych do pustej bazy. * Zapis testowego strumienia danych do wypełnionej bazy (wolumen w bazie = wolumen testowy). * Należy przeprowadzić dla 1,2,4,8,16,32,64 współbieżnych połączeń. * Wolumen danych pozostaje stały tj. w bazie danych po zakończeniu eksperymentu ma być dokładnie tyle rekordów ile zostało zdefiniowanych jako wymagania dla eksperymentów (dla testów na pustej bazie), albo *2 dla testów na bazie wypełnionej. * Eksperyment musi wykorzystywać zalety związane z rozproszeniem bazy danych celem uzyskania maksymalnej wydajności (ilości rekordów na sekundę). ==== Eksperyment 2 (ro) ==== * Odczyt liniowy testowych danych z bazy (cały wolumen). * Odczyt losowy z wykorzystaniem date/timestamp (cały wolumen). * Należy przeprowadzić dla 1,2,4,8,16,32,64 współbieżnych połączeń. * Dane w bazie pochodzą z eksperymentu 1. ==== Eksperyment 3 (rw) ==== * Zapis testowego strumienia danych do wypełnionej bazy, wraz z współbieżnym odczytem. * Należy przeprowadzić dla 1,2,4,8,16,32,64 współbieżnych połączeń zapisujących i odczytujących (iloczyn kartezjański, razem: 49 eksperymentów) * Wolumen danych pozostaje stały tj. w bazie danych po zakończeniu eksperymentu ma być dokładnie tyle rekordów ile zostało zdefiniowanych jako wymagania dla eksperymentów *2. * Eksperyment musi wykorzystywać zalety związane z rozproszeniem bazy danych celem uzyskania maksymalnej wydajności (ilości rekordów na sekundę).