1 / 30

Paralelní a distribuované MAM

Paralelní a distribuované MAM. Jakub Lokoč. Osnova. Úvod do problematiky Paralelní MAM M-Tree Distribuované MAM GHT* VPT* MCAN M-Chord. Úvod do problematiky.

iram
Télécharger la présentation

Paralelní a distribuované MAM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Paralelní a distribuované MAM Jakub Lokoč

  2. Osnova • Úvod do problematiky • Paralelní MAM • M-Tree • Distribuované MAM • GHT* • VPT* • MCAN • M-Chord

  3. Úvod do problematiky • U centralizovaných indexů je silná korelace mezi velikostí DB a náklady na vyhodnocení podobnostních dotazů (lineární závislost, limituje škálovatelnost) • Objem indexovatelných MM dat roste exponenciálně (jen 1% dat na Internetu jsou texty) • Vývoj HW narazil na fyzikální hranice, trendem je paralelizace (více jader v CPU atp.) • Řešením je vývoj efektivnějších indexačních struktur, nebo využití více zdrojů (CPU, HDD, …) při řešení dotazů stávajícími metodami

  4. Zákony paralelizace • Ne vždy lze paralelizací vylepšit stávající algoritmus navržený původně pro sekvenční zpracování – Amdahl's law • Algoritmus se skládá z částí, které nelze paralelizovat – nelze urychlit • Zvyšováním počtu výpočetních jednotek se urychluje jen část algoritmu • Vztahuje se ke konstantnímu problému – výsledný čas se přidáváním zdrojů blíží limitně k času sériově zpracovávané části (100;100), (100;50-50), (100;25-25-25-25), …, (100; 1-1-1-1…) • Každý dostatečně velký problém se dá paralelizovat - Gustafson's law • Zvětšováním problému (paralelní části) se dá dosáhnout stejného času při využití více zdrojů • Důležitý faktor pro návrhškálovatelných systémů • S rostoucí velikostí problému se snižuje význam času sériově zpracovávané části (100;100), (100;100-100), (100;100-100-100-100), …

  5. Efektivita paralelizace • Speed-up = ST / BT (small/big system time) • Lineární, pokud n x věší systém je n x rychlejší (pro stejnou úlohu) • Scale-up = STSP / BTBP (small/big system time small/big problem) • Lineární, pokud se rovná/blíží 1

  6. Paralelní MAM • Paralelní zařízení • Skládá se z několika procesorů a disků • Sdílí paměť a komunikační kanály • Paralelní index – požadavky • Data (DB objekty) jsou sdílena všemi procesory, tzn. každý CPU může v každém okamžiku číst/měnit libovolná data (s výjimkou vzájemného vyloučení při vstupu do kritické sekce) • Lze spustit součastně více operací na různých CPU • Data jsou paralelně ukládána na více disků

  7. Paralelní M-Tree • Základní typy paralelismu • CPU paralelismus • I/O paralelismus • Limitující faktory pro zpracování dotazu • Stromová struktura – nelze zpracovat objekty v potomkovi, pokud nebyl zpracován příslušný objekt v rodičovském uzlu • Sériové odebírání požadavků z fronty (PQ) u kNN dotazů

  8. CPU paralelizace • Dotazování • Pořadí zpracování uzlů je dáno dynamicky budovanou frontou • Z koordinačních důvodů je zpracovávána dedikovaným procesorem • Zbylé procesory se používají pouze pro paralelizaci výpočtů vzdáleností k jednotlivým směrovacím/listovým záznamům v aktuálně zpracovávaném uzlu • Tvorba stromu – štěpení uzlu • Omezení CPU paralelizace • Počet klíčů v uzlu • Sériové odebírání prvků z PQ

  9. I/O paralelizace • Načítání uzlů do paměti – v jednom výpočetním kroku se snaží načíst co nejvíce uzlů z různých disků do pomocné struktury TEMP • Míra paralelizace načítání během zpracování dotazu závisí na metodě/strategii ukládání uzlů na disk (tzn. jejich rozložení) • Globální alokace • Random (náhodně rozděluje) • Round-robin (rovnoměrné rozložení uzlů) • Proximity-based alokace (bere v potaz rozložení okolních regionů) • Simple-proximity – součet poloměrů mínus vzdálenost • Complex-proximity – pravděpodobnost, že dotaz protne oba regiony • K určení disku dochází po štěpení uzlu • U kNN dotazu nemusí vadit, že byl upřednostněn jiný uzel z důvodu zajištění paralelizace I/O • Filtrování uzlů probíhá i v TEMP

  10. I/O paralelizace – vylepšení ? • Mezi jednotlivé disky se rozdělují záznamy v listu (a ne uzly) • Listový uzel obsahuje pouze adresy objektů na jednotlivých HDD • Objekty jsou distribuovány mezi disky vzhledem ke globálnímu rozdělení objektů • Vložení objektu • Po nalezení listového uzlu se položí rozsahový dotaz (poloměr je vzdálenost k pivotu listového uzlu a střed je nový objekt) • Z vrácených odpovědí se zjistí nejméně frekventovaný disk, na který se uloží nově vkládaný objekt • Vede k téměř optimálnímu rozdělení objektů mezi HDD • Vliv na rychlost dotazů nebyl v článku uveden

  11. Distribuované MAM • Distribuované prostředí (DP) • Počítače (uzly) propojené vysokorychlostní sítí – využívají vzájemně výpočetní sílu svých CPU a svá datová úložiště • Každý počítač má vlastní pamět (volně vázané systémy) • Je zapotřebí infrastruktura pro alokaci a zpracování objektů v DP • Zajištění základních operací je realizováno zasíláním požadavků mezi uzly pomocí směrovacích mechanismů • Není omezena škálovatelnost jako u paralelního zpracování • Síť několika počítačů je levnější než jeden superpočítač • Základní paradigmata distribuovaných indexů • SDDS (scalable and distributed data structures) • P2P

  12. Požadavky na SDDS a P2P • SDDS (servery obsahují data a klienti provádí operace) • Scalability – efektivní migrace dat na nové uzly (jen pokud jsou stávající dostatečně zaplněné) • No hotspot – bez centralizovaného adresáře s adresami objektů • Independence – operace nevyžadují atomické změny více uzlů • P2P • Peer – každý uzel struktury se chová jako klient i jako server, tzn. může zasílat dotazy a součastně ukládat data • Fault tolerance – pokud uzel vypadne, tak se dají zpracovávat všechny operace dál, jen dočasně neuvidí na všechna data • Redundancy – replikace dat za účelem zvýšení dostupnosti, využíváno algoritmy pro vyhledávání

  13. GHT*, VPT* • Založený na GHT (VPT), využívá P2P paradigma • Splňuje základní vlastnosti SDDS a P2P přístupů • Scalability – každý uzel (peer) se může kdykoliv nezávisle rozštěpit a distribuovat data na jiné uzly • No hotspot – každý peer udržuje vlastní adresní schéma, aktualizace probíhá pouze lokálně (štěpení nezahlcuje síť) • Peer – každý uzel může ukládat data a součastně klást dotazy • Architektura • Každý uzel (peer) obsahuje úložiště pro data tzv. „kapsu“ (bucket) – počet a kapacita závisí na možnostech uzlu (nemusí mít vůbec). • Po zaplnění kapsy dojde k jejímu štěpení, nová kapsa může být umístěna na jiný uzel. Je možné i slučovat kapsy. • Základní struktura pro lokalizaci objektů je AST (address search tree), uložená v každém uzlu tzn. vyhodnocování adres je lokální záležitost • AST se automaticky aktualizuje v průběhu vyhodnocování dotazů

  14. AST – address search tree Vychází z GHT (VPT) Vnitřní uzly obsahují 2 směrovací objekty Každý list reprezentuje buď ukazatel na lokální úložiště tzv. kapsu (pomocí BID) nebo na jiný uzel sítě (pomocí NNID), kde se data nachází. Pro zjištění nekonzistence mezi AST na různých uzlech sítě je u každého vnitřního uzlu jeho sériové číslo, které se mění při změně části stromu. Změny v AST jsou vyvolány štěpením nebo sléváním kapes. Problém s lineární závislostí replikovaných pivotů – logaritmická replikace – stromy obsahují jen nezbytné pivoty – větve vedoucí jen na NNID se zkrátí

  15. Štěpení kapsy • Alokace nové kapsy – pokud možno na stejném uzlu • Výberou se dva noví pivoti • Výpočetně náročné • Inkrementální výběr pivotů – hypotéza, že GHT je lepší pro vzdálené pivoty • První dva objekty jsou kandidáti, každý nový objekt se porovná jen s kandidáty • Přesun vybraných objektů do nové kapsy

  16. Vkládání a změny v GHT* • Traverzuje AST v aktuálním uzlu • Pokud nalezne BID, tak vloží (může se štěpit) • Pro NNID přeposílá požadavek příslušnému uzlu v síti • Aby se zabránilo redundantním výpočtům vzdáleností, tak se zašle i BPATH (bit path 0-left, 1-right + serial numbers) • Změna objektu = smazat původní a znovu vložit nový • Smazání objektu • Vyhledání kapsy v AST a odebrání • Pokud je kapsa dostatečně prázdná, hledá kapsu pro sloučení (kapsa nalevo v AST – inverzní ke štěpení)

  17. Dotazy • Range • Prochází AST, vyhovovat může více větví, v listu se pro BID prohledá lokální úložiště, jinak zasílá požadavek na NNID (včetně BPATH), pro více stejných NNID se zašle pouze jeden dotaz a čeká na odpověď • KNN • Na rozdíl od centralizovaných indexů nezačíná velkým poloměrem, ale položí bodový dotaz a vybere nejvhodnější kapsu, ze které vezme prvních k obejktů. Tím je definován poloměr pro rozsahový dotaz z jehož výsledku se vybere k nejbližších. • Pokud nebylo prvním bodovým dotazem získáno alespoň k objektů, zkusí položit rozsahový dotaz negarantující nalezení k objektů. Pokud jich opět nevrátí dost, musí se zvětšovat poloměr pomocí jedné ze strategií • Optimistická – zvětší poloměr málo, riskuje další iterace • Pesimistická – zvětší poloměr hodně, nižší pravděpdodobnost opakovaných dotazů

  18. Aktualizace AST • Lokální změny AST se nemusí šířit k ostatním uzlům sítě • K detekci rozdílů a aktualizaci dochází během operací vkládání, mazání a dotazování – se zaslaným požadavkem jde i BPATH • Různá délka cesty • Různá sériová čísla • Uzel, který vyhodnocuje BPATH, zjistí část AST, kterou potřebuje odesílatel aktualizovat (pro více zpracovávaných požadavků zašle více částí) • Peer serializuje části stromu a zašle IAM (Image Adjustment Message) • Při rekurzivním volání NNID se rekurzivně zasílají i IAM

  19. MCAN • Založen na CAN (Content Addressable Network) • Distribuovaná hash tabulka – prvky jsou uzly sítě, mapování objektů • Každý uzel je dynamicky asociován s částí d-dimenzionálního Kartézského prostoru (může mu být přiřazena pouze jedna) • Podporuje vkládání, vyhledávání a mazání objektů (K, V) • Uzel uchovává objekty, které jsou mapovány do jeho regionu, má ukazatele na sousední uzly (vzhledem k pozici v mapovaném prostoru) • Zobecnění na metrické prostory - MCAN • K mapování objektů (fce F) do vektorového prostoru se použije sada n pivotů • Objekt O je přiřazen uzlu, do jehož prostoru padne F(O) • Vzdálenost objektů v Rn se počítá kontraktivní Lmax metrikou • Uzel MCAN struktury obsahuje IP adresy a virtuální souřadnice zón svých sousedů • Jednotlivé zóny se nepřekrývají, prvotní inicializace je inkrementální selekcí • Dodatečné filtrování pomocí dalších pivotů

  20. Operace v MCAN Vkládání – může začít v lib. uzlu U – vypočítá se jeho pozice ve virtuálním vektorovém prostou. Otestuje se, zda se nachází přímo v U, pokud ne tak se požadavek na vložení směruje na souseda, jenž je nejblíže novému objektu (Lmax), což může opět vést k dalšímu směrování. Uzel do kterého se nakonec objekt vložil zasílá zprávu uzlu U. Štěpení – pokud je objekt vložen do plného uzlu, tak dojde k balancovanému disjunktnímu štěpení – polovina objektů se vloží do nového uzlu (ze seznamu volných uzlů připravených k rozšíření sítě). Na závěr se aktualizuje seznam sousedů. Rozsahový dotaz – dotaz je mapován fcí F do vektorového prostoru, kde se porovná s aktuálním uzlem. V případě průniku zpracuje dotaz, jinak směruje dotaz na souseda, který je „blíže“ k regionu dotazu. Jakmile se najde průnik, tak se vyhodnotí dotaz (vlastní struktura na uložení dat) a přepošle se sousedům, kteří také „protínají“ dotaz. Uzel předává seznam navštívených uzlů INL, po vyhodnocení zasílá zpět volajícímu výsledek a INL rozšířený o nově kontaktované uzly. Každý dotaz má vlastní identifikátor – nedochází k duplicitnímu hledání v uzlech.

  21. M-Chord – z čeho vychází • iDistance • Metoda pro podobnostní vyhledávání ve vektorových prostorech • Mapuje objekty do clusterů, pro každý vybírá referenční objekt P • Každému objektu je přiřazeno číslo (iDistance key) = vzdálenost k P • Konstanta c pro oddělení clusterů -> iDist(x) = d(pi, x) + i*c • Klíče jsou ukládány v B+-tree • Vyhledávání – berou se pouze ty intervaly, které protne dotaz (+ další ořezání) • Chord (P2P protokol) – lokalizace uzlu pouze O(log n) zpráv • Efektivní lokalizace uzlu, který obsahuje data (vzhledem k odpovídajícímu klíči) • Dynamická struktura (přidání, odebrání uzlu) založená na zasílání zpráv • Mapuje doménu vyhledávacích klíčů do Chord domény [0, 2m) • Každý Chord uzel má přiřazen klíč Ki ze stejné domény [0, 2m), uzly jsou setříděny dle vztahu Ki<Kj <=> i<j, uzel Ni je zodpovědný za hodnoty(Ki-1, Ki] mod 2m a obsahuje ukazatele na následníka a předchůdce + finger table

  22. M-Chord • Namísto referenčních objektů se z objektů vybírají pivoti • Pomocí nich se mapují objekty do jednorozměrného prostoru • iDistance doména představuje klíče v Chord protokolu – tzn. musí se transformovat do [0, 2m) pomocí uniformní hash fce h zachovávající pořadí – m-chord(x) = h(d(pi, x) + i*c) • Každý uzel sítě je zodpovědný za interval klíčů (i více intervalů iDist) • Vkládání – oslovený uzel vypočítá m-chord(x) a zašle mu požadavek. Po vložení uzel zašle potvrzení. Pokud dojde ke štěpení, tak se přibere nový uzel a interval se rozpůlí • Pokud je rozsah intervalu klíčů přes více intervalů iDist tak vybírá prostřední iDist hranici • Jinak dělí na dvě poloviny • K ukládání m-chord klíčů používá B+-tree, ukládá se i vzd. k pivotům • Vyhledávání – uzel spočítá k dotazu intervaly (pro všechny pivoty) a zašle zprávy uzlům k vyhodnocení

  23. Porovnání • Systém 300 aktivních uzlů • Pro GHT* (VPT*) uzel 5 kapes pro 1000 obj • Uzly MCAN a M-Chord s kapacitou 5000 obj • MCAN – 4 pivoty pro mapování, 40 pivotů pro filtrování • M-Chord – používá 40 pivotů • Propojeno vysokorychlostní LAN • Datové sady – 500.000 objektů • 45 dim vektory (color image features), kvadratická forma • Názvy a podnázvy českých knížek a časopisů, editační vzdálenost • DNA sekvence délky 16, vážená editační vzdálenost (vrací hodnoty 0-100)

  24. Výsledky porovnání

  25. Reference • Články • Processing M-trees with Parallel Resources • A Parallel Similarity Search in High Dimensional Metric Space Using M-Tree • On Scalability of the Similarity Search in the World of Peers • Fast Parallel Similarity Search in Multimedia Databases • A Content–Addressable Network for Similarity Search in Metric Spaces • M-Chord: A Scalable Distributed Similarity Search Structure • Knihy • Similarity Search The Metric Space Approach

More Related