Paralelizace vyhledávání a stahování

Z FI WIKI
Přejít na: navigace, hledání

Původní stav

Server implementovaný v rámci projektu PA165 při vyhledvání relevantních záznamů postupně volal jednotlivé webové služby poskytující vyhledávání v různých elektronických zdrojích (pluginy). Nejprve byl poslán dotaz prvnímu pluginu a server vyčkal na jeho odpověď, poté následovalo postupné zavolání dalších požadovaných pluginů. Protože vyhledání publikací pluginem trvá několik sekund, tak v situaci, kdy by bylo osloveno tímto způsobem větší množství pluginů, by doba potřebná k nalezení výsledku příliš narostla.

Paralelní vyhledávání

Z výše uvedených důvodů byla do jádra serveru implementována podpora paralelního vyhledávání. Samotné vyhledávání má na starosti třída SearchThread ([1]). Server postupně vytvoří a spustí jednotlivá vlákna, která oslovují příslušný plugin. Poté co jsou všechna vlákna spuštěna, server vyčká do té doby, než je jejich běh ukončen a poté získá od nich nalezené výsledky vyhledávání, ze kterých sestaví výsledek pro zaslání klientovi.

Download souborů

Ze sestaveného dotazu je do chache serveru uložen přednastavený počet dokumentů. Stahování je opět řešeno vícevláknovým způsobem. Server pro každý stahovaný soubor vytvoří nové vlákno DownloadThread ([2]), které poté uloží dokument do cache serveru.