Paraleln é vyhľadávanie nad viacrozmernými indexmi

Preview:

DESCRIPTION

Paraleln é vyhľadávanie nad viacrozmernými indexmi. Martin Orendáč. RNDr. Peter Gurský, PhD. Ciele práce. Naimplementovať a porovna ť štruktúry “naivn ého ” distribuovaného R * stromu, MC R * stromu a distribuovaného R* stromu. Obsah prezentácie. Definícia R stromu - PowerPoint PPT Presentation

Citation preview

Paralelné vyhľadávanie nad viacrozmernými indexmi.

Martin Orendáč RNDr. Peter Gurský, PhD.

Ciele práce

Naimplementovať a porovnať štruktúry “naivného” distribuovaného R* stromu, MC R* stromu a distribuovaného R* stromu.

Obsah prezentácie

• Definícia R stromu

• Priblíženie problému paralelizácie

• Popis troch distribuovaných štruktúr uvedených v cieľoch práce.

R strom - Úvod

je stromová štruktúra na indexovanie viacrozmerných dát na základe ich priestorovej pozície. Pod k-rozmerným dátovým súborom si môžeme predstaviť ľubovoľný objekt z k-rozmerného priestoru s atribútmi. My však budeme pracovať len s obdĺžnikmi a ich viacrozmernými variantmi.

R strom - Definícia• Každý uzol stromu je identifikovaný

dvojicou <MBR, I>, kde I je číslo stránky na disku na ktorej sa nachádza a MBR ohraničujúci obdĺžnik.

• Dátové objekty sú uložené v listoch R stromu (MBR listu ohraničuje všetky MBR objektov v liste). Vnútorné uzly obsahujú zoznam <MBR,I> svojich potomkov.

• Každý uzol má svoju kapacitu, koľko najviac potomkov/objektov môže mať.

R strom - Príklad

R strom - Vyhľadávanie

Prehľadávanie takéhoto stromu prebieha od koreňa smerom nadol. Majme obdĺžnik S, chceme nájsť všetky dátové súbory ktorých obdĺžnik ohraničuje S. Pre každý uzol (začínajúc koreňom), ktorý nie je listom, prehľadáme množinu MBR jeho potomkov a zavoláme takéto vyhľadávanie na všetkých potomkoch, ktorých MBR ohraničuje S. Pre každý listový uzol opäť prehľadáme množinu obdĺžnikov indexovaných dát a vrátime všetky dátové súbory, ktorých obdĺžniky ohraničujú S.

R strom a R* strom

V našej práci používame R* strom, ktorý je vylepšením R stromu, lýšia sa v algoritme vkladania dát. Keďže však pracujeme so statickou databázou, tj operácia vkladania nie je povolená, nemá zmysel tento rozdiel popisovať.

Paralelné vyhľadávanie nad R stromami - Motivácia

Predstavme si obrovskú databázu (NASA v roku 1996 pracovala s 1 TB nových dát denne; geografické databázy), ktorú chce prehľadávať veľa ľuďí. Kde klasické vyhľadávanie nestačí, je potrebné rozmýšľať nad spôsobmi urýchlenia. Jedným z týchto spôsobov je paralelizácia.

Paralelné vyhľadávanie nad R stromami - Príklad využitia, Mx R stromy

• Prvým prístupom s využitím paralelizácie v problematike bolo využitie tzv. multiplexed (Mx) R stromov.

• Použiteľný na architektúre s jedným procesorom a viacerými diskmi.

• Uzol Mx R stromu je uzol identifikovaný trojicou <MBR, I, diskId>, kde I je číslo stránky a diskId je id disku na ktorý sa máme pozrieť.

Paralelné vyhľadávanie nad R stromami - Príklad využitia, MX R stromy

Filozofia : I/O operácie sa rozdelia medzi viaceré disky, na ktorých sa spracúvajú paralelne.

Nato, aby bol tento prístup efektívny, je potrebné aktivovať vždy keď uzol chce pristúpiť k potomkom čím viac diskov. V Mx R strome je cieľom rozdistribuovať podobné uzly stromu na rôzne disky.

Metóda Proximity Index.

Paralelné vyhľadávanie nad R stromami - Distribuované prostredie

• Majme distribuovaný systém, chceme rozdistribuovať uzly globálneho R stromu na jednotlivé stanice. Metóda Proximity Index by svojim rozdelením uzlov na jednotlivé stroje spôsobila zahltenie siete - neberie v úvahu komunikačný čas.

Paralelné vyhľadávanie nad R stromami - Distribuované prostredie

Pre minimalizáciu počtu zaslaných správ sa použije jedna stanica ako Master Server, ktorá bude rozhodovať ktorým staniciam je potrebné preposlať dopyt. Zvyšné stanice sa stanú úložnými serverami, budú spravovať listovú vrstvu globálneho stromu.

Paralelné vyhľadávanie nad R stromami - Distribuované prostredie

Stále však ostáva problémom ako efektívne rozmiestniť dáta, kedže musíme brať v úvahu komunikačný čas aj čas potrebný na lokálne spracovanie dopytu.

Popis štruktúr - Naivný distribuovaný R * strom

Majme vstupnú postupnosť dát ktoré chceme indexovať, a k úložných servrov. Dátové objekty pridelíme na jednotlivé stanice metódou Round Robin, teda i tý objekt pridelíme na (i mod k) tu stanicu. Úložné servre si potom z pridelených dát vytvoria lokálne R* stromy.

Pri prehľadávaní potom master server osloví všetky úložné servre a vráti zjednotenie ich výsledkov.

Popis štruktúr - MC R* Strom

Nevýhoda “naivného” stromu - aj malý dopyt osloví zbytočne veľa staníc. Opak - ak by master oslovil aj väčšími dopytmi len jednu stanicu, vôbec by sme nevyužili výhody paralelizmu.

“Dobré” rozdelenie : na stanice distribuujeme skupiny podobných dát, pričom podobné skupiny distribuujeme na odlišné stroje. (Myšlienka Mx R stromu)

Optimálny počet dát na skupinu je rovný kapacite listu globálneho stromu.

Popis štruktúr - MC R* Strom

Na distribuovaný R-strom sa môžeme pozerať ako na dvoj-úrovňový R-strom. Na Master Servri sa vytvorí lokálny strom, ktorý uchováva všetky vnútorné uzly globálneho stromu. Listové uzly globálneho stromu sú na master servery identifikované dvojicou <MBR, siteId>, kde siteId je identifikátor stanice, na ktorej sa listový uzol nachádza. Tieto listy sú rozdistribuované po ostatných staniciach v sieti, na ktorých sú následne vytvorené lokálne R-stromy.

Popis štruktúr - MC R* Strom

• Obrazok

Popis štruktúr - MC R* Strom, vytvorenie MC R* Stromu

Aby sme mohli dáta vhodne rozdeliť medzi stanice, potrebujeme ich najskôr zotriediť podľa podobnosti, na čo sa použije algoritmus STR. Následne môžeme postupnosť rozdeliť na úseky o dĺžke M, kde M je kapacita listu, a metódou Round Robin prideliť a rozposlať na jednotlivé stanice.

Popis štruktúr - MC R* Strom, STR algoritmus

Majme k-dimenziálnu postupnosť n (hyper) obdĺžnikov. Túto postupnosť utriedime podľa prvej súradnice ich stredu. Nech P = n/M , zaokrúhlené nahor. Postupnosť rozdelíme na S = P1/k úsekov. Rekurzívne usporiadame každý z úsekov podľa zvyšných k-1 súradníc.

Popis štruktúr - MC R* Strom, STR Packing

Pomocou STR Packing algoritmu vieme dosiahnuť vytvorenie stromu so skoro 100% naplnením uzlov. Princíp : máme vytvorenú vrstvu potomkov a poznáme kapacitu jedného uzla, z toho vytvoríme vrstvu rodičov. Rekurzívne opakujeme kým vrstva rodičov neobsahuje len jeden uzol, ktorý sa stane koreňom stromu.

Popis štruktúr - MC R* Strom

• Na master servri vytvárame lokálny strom pomocou STR packing, pričom začíname od najnižšej vrstvy, ktorou sú ukazovatele na jednotlivé stanice.

• Na úložných servroch vytvárame lokálne stromy už priamo z pridelených dát.

Popis štruktúr - Distribuovaný R* Strom

• Paralelizmus možno využiť nielen na urýchlenie dopytu, ale aj na rozdelenie záťaže medzi jednotlivé stanice. Preto sa v tomto strome budeme snažiť prideliť podobné dáta na rovnaké stanice. (Snaha smerovať podobné dopyty na podobné stanice, predpoklad že budem dostávať rôzne dopyty)

• Podobný ako MC R*, rozdiel v počiatočnom prideľovaní na stanice - počiatočnú utriedenú postupnosť delíme na n úsekov, kde n je počet staníc.

Popis štruktúr - Distribuovaný R* Strom

• Takýto prístup má výhodu oproti MC R* stromu - strom na master servri môžeme znížiť, čím sa znižuje riziko že tento server bude “bottle neck”. Znižovanie sa vykoná už počas STR packingu - pokiaľ viem že podstrom nejakého uzla obsahuje len ukazovatele na jednu stanicu, môžem ho nahradiť ukazovateľom.

Stav práce

Priestor pre otázky

Recommended