140 likes | 203 Views
Rozloženie záťaže pri top-k fazetovom vyhľadávaní. Vedúci práce RNDr. Peter Gurský, PhD. Riešiteľ práce Bc. Juraj Bobák. Use Case. request. S i1. click. D i1. response. S i1. read. D i2. S i3. D i3. S ij. D ij. Charakteristika problému.
E N D
Rozloženie záťaže pri top-k fazetovom vyhľadávaní Vedúci práce RNDr. Peter Gurský, PhD. Riešiteľ práce Bc. Juraj Bobák
Use Case request Si1 click Di1 response Si1 read Di2 Si3 Di3 Sij Dij
Charakteristika problému „vstupom“ problému je vytvoriť systém narozloženie záťaže pri top-k fazetovomvyhľadávaní pri takomto vyhľadávaní sa vykonávajú rozdielne zložité dopyty, ktoré je potrebné rozdeľovať medzi rôzne výkonné servery pri zohľadnení ich vyťaženosti atribútom rozloženia záťaže je taktiež počet používateľov vytvárajúcich dopyty pri vyhľadávaní
Ciele • Požiadavky na Load Balancer • Fail-Over – reagovať na nedostupnosť serveru • Scalability – rozšírenie clusteru o server zvýši výkon clusteru • Analýza náročnosti dopytov • Rozdeľovanie záťaže na základe vyťaženia serverov a zložitosti dopytov
Vyťaženie serveru Na základe výkonu, vyťaženosti CPU a operačnej pamäte spočítať vyťaženosť serveru Zohľadňovať vyťaženie sieťovej komunikácie na danom serveri Rozposielať správy o vyťaženosti po sieti obežníkmi (broadcast)
Aplikácia na zistenie vyťaženia serveru • Dve časti: Messenger a Listener • Messenger.js • odosiela dáta obežníkmi po sieti o vytaženosti CPU, pamäte a siete • každý typ dát odosiela v inom čase a asynchrónne • modifikácia – vytaženie HDD • Listener.js • počúva na sieti obežníky a prijímané dáta o každom stroji ukladá • modifikácia – môže si uchovávať históriu dát
Náročnosť dopytov zistiť náročnosť dopytov Upravovať náročnosť dopytov „live“ podľa empiricky získaného očakávaného času a reálnych prevádzkových časov (tiež vhodné na varovanie o problémoch)
Náročnosť dopytov • Uložiť konfiguráciu náročnosti dopytov do konfiguračného súboru, ktorý bude obsahovať náročnosť na: • pamäť serveru • procesor stroja • sieť (tá by mala byť rovnaká - top-k) • jediná väčšia záťaž na sieť kvôli veľkosti používateľských preferencií • diskovú záťaž (zatiaľ nezisťovaná v Messenger.js) • záleží tiež na použitom úložisku • je rozdiel v náročnosti na operačnú pamäť pri databáze • MySQL a Indexe
Zisťovanie náročnosti dopytov • dopyty pre projekt „kapsa“ • zatiaľ len jeden typ dopytu– full scan domény • potreba dát na testovanie • aktuálne dáta • náhodne vygenerované dáta
Generovanie dát • štruktúra databázy kapsa je založená na doménach a atribútoch • 5 typov atribútov • vymenovaný typ • diskrétne hodnoty • intervaly • časový typ • hierarchický typ • generátor vytvorí jeden súbor pre import dát a druhý súbor pre jednoduché vymazanie importovaných dát
Testovanie dopytu – čas odpovede testovali sme dopyt na 17-ich doménach 6 rovnakých databáz, z ktorých každá mala postupne o polovicu menšiu doménu (o polovicu menej záznamov) 100 dopytov pre každú doménu v každej databáze
Zostáva odmerať pre každú doménu vyťaženie RAM a CPU k tomu vytvoriť konfiguračný súbor naprogramovať RMI pre vzdialené volanie dopytov všetko otestovať