next up previous contents index
Next: Popis činnosti ICP modulu Up: Implementace ICP v PET Previous: Detekce nedosažitelných serverů

Způsoby výběru parent serverů:

 Použili jsme 3 algoritmy pro výběr mezi parent počítači v případě záporných odpovědí na ICP dotazy nebo pokud žádné sibling počítače nejsou definovány.

 ORDER
algoritmus sloužící pro definování záložních parent počítačů Algoritmus je určen pro případ, kdy máme jeden primární parent server, na který chceme směrovat požadavky z daného uzlu ICP sítě. V případě, že by se nám ovšem nepodařilo spojit s tímto počítačem definujeme seznam dalších parent počítačů sloužících jako záloha. Při zpracování požadavku se snažíme dokument získat od parent počítačů v pořadí, v jakém jsou definovány v seznamu (pokud nezískáme dokument od jednoho, přejdeme k dalšímu atd.).
 FIRSTMISS
algoritmus optimalizující chování po negativních odpovědích od sibling počítačů:

Tato metoda je vytvořena pro případ, kdy některé z parent počítačů jsou i siblingové. Předpokládáme-li, že rychlost odpovědi na ICP dotaz souvisí s kvalitou spojení a zatížením cache na sibling počítači, je rozumné očekávat, že od počítače, který nám první odpoví na ICP dotaz získáme dokument nejrychleji.

Algoritmus pracuje takto:

Parent počítače seřadí do seznamu následujícím způsobem:

Dokument se snažíme získat postupně od takto seřazených počítačů. Pokud se nám nepodaří spojit se s prvním počítačem v seznamu, ze seznamu ho odebereme a zkoušíme další

 WEIGHTED
algoritmus určený pro rozložení zátěže na více cache:

Metoda je určena pro rozložení zátěže mezi více ICP serverů v daném uzlu. Administrátor nadefinuje seznam parent počítačů a vzor (pattern), podle kterého jsou počítače vybírány. Pattern je pole pořadových čísel parent počítačů v seznamu. Tento pattern je udržován v globální struktuře spolu s ukazatelem na aktuální prvek.

Algoritmus pracuje následovně:

Vybere z patternu číslo v aktuální prvku ( toto číslo je pořadovým číslem počítače v seznamu parent počítačů) a posune aktuální prvek na další prvek patternu, popřípadě na začátek.

Př.:

icp_parent: cache.cesnet.cz 3130 3128

icp_parent: linux.kolej.mff.cuni.cz 3130 3128

icp_parent: cache.vol.cz 3153 3182

icp_pattern: 1,2,3,1,3,2,1,1

ukazatel na aktuální prvek je nastaven na prvek č. 4 tj. pořadové číslo parent počítače, od které budeme získávat dokument je 1.

Dokument tedy budeme požadovat od cache.cesnet.cz a ukazatel na aktuální prvek posuneme na prvek č. 5 tj. pořadové číslo parent počítače pro další požadavek v tomto uzlu ICP sítě bude 3 ( cache.vol.cz)

Pokusí se získat dokument od parent počítače s tímto pořadovým číslem

Pokud neuspěje, zkouší ostatní počítače v pořadí daném seznamem parent počítačů ( pokud narazí na konec seznamu přesune se na začátek a skončí až narazíme na počítač u kterého začal.)

 HASH
algoritmus pro rozložení zátěže mezí více cache podle kódu dokumentu:

Algoritmus používá pro určení parent počítače kód, pod kterým modul storage ukládá dokumenty na disk (viz. Storage).

Nejprve zjistíme počet parent počítačů v daném uzlu. Označme toto číslo jako n. Zjistíme také počet dosažitelných parent počítačů a označíme ho x. Následně vypočítáme zbytek po dělení prvního bytu kódu dokumentu a čísla n. Toto číslo nám pak určuje kolikátý parent počítač použijeme pro získání dokumentu. Je-li tento počítač nedosažitelný, zjistíme zbytek po dělení druhého bytu kódu dokumentu a čísla x. Toto číslo určuje z kolikátého dosažitelného počítače získáme daný dokument. Pokud od tohoto počítače dokument nezískáme, zkoušíme ostatní parent počítače v pořadí daném jejich pozicí v konfiguračním souboru.

Vzhledem k charakteru funkce přidělující kód dokumentu (viz. Storage) máme zaručeno přibližně stejnoměrné rozložení náhodných požadavků na dokumenty mezi parent počítače.

Hlavní rozdíl mezi algoritmem HASH a WEIGHTED spočívá v tom, že algoritmus HASH přesměruje všechny požadavky na určitý dokument vždy na stejný počítač, kdežto algoritmus WEIGHTED nikoliv. U algoritmu WEIGHTED ale máme zajištěno rozložení požadavku podle patternu (tedy muže být i rovnoměrné) i pro malý počet dotazů.


next up previous contents index
Next: Popis činnosti ICP modulu Up: Implementace ICP v PET Previous: Detekce nedosažitelných serverů
Stanislav Pavlicek
2000-06-12