26
Paralelné vyhľadávanie nad viacrozmernými indexmi. Martin Orendáč RNDr. Peter Gurský, PhD.

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

Embed Size (px)

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

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

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

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

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

Ciele práce

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

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

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.

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

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.

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

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ť.

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

R strom - Príklad

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

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.

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

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ť.

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

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.

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

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ť.

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

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.

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

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.

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

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.

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

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.

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

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.

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

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.

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

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.

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

Popis štruktúr - MC R* Strom

• Obrazok

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

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.

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

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.

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

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.

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

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.

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

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.

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

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.

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

Stav práce

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

Priestor pre otázky