Distribuované Hashovací Tabulky. Jaroslav Bárta

Podobné dokumenty
Distribuované systémy a výpočty

Strukturované a nestrukturované P2P sítě, DHT

Peer-to-Peer sítě. Mgr. Miroslav Novotný. Katedra Softwarového inženýrství

Bakalářská práce. Simulace vybrané metody DHT

PEER-TO-PEER PŘÍSTUP K VYHLEDÁVÁNÍ NA INTERNETU

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

Algoritmizace Hashing II. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Síťová vrstva. RNDr. Ing. Vladimir Smotlacha, Ph.D.

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

PDV /2018 Detekce selhání

Základy počítačových sítí Model počítačové sítě, protokoly

5. Směrování v počítačových sítích a směrovací protokoly

Příprava na zk. z KIV/DS

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Inovace výuky prostřednictvím šablon pro SŠ

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat.

Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady

Inovace bakalářského studijního oboru Aplikovaná chemie

FlowMon ADS 3. Nová generace řešení pro analýzu provozu datové sítě. Pavel Minařík

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

Počítačové sítě IP směrování (routing)

1 Protokol TCP/IP (Transmission Control Protocol/Internet Protocol) a OSI model

Systémy pro sběr a přenos dat

Inovace bakalářského studijního oboru Aplikovaná chemie

Identifikátor materiálu: ICT-3-03

SOU Valašské Klobouky. VY_32_INOVACE_02_18 IKT DNS domény. Radomír Soural. III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Stromy, haldy, prioritní fronty

K čemu slouží počítačové sítě

Distribuované systémy a počítačové sítě

Internet se skládá ze o Segmentů, kde jsou uzly propojeny např. pomocí Ethernetu, Wi-Fi, atd. a tvoří autonomní oblasti 10.1.x.x x.x Atd.

Advanced IT infrastructure control: Do it better, safer, easier and cheaper. FlowMon ADS 3. Nová generace řešení pro analýzu provozu datové sítě

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Počítačové sítě. Počítačová síť. VYT Počítačové sítě

V kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat.

04 - Databázové systémy

Počítačové sítě. Miloš Hrdý. 21. října 2007

Počítačové sítě. Další informace naleznete na :

pozice výpočet hodnota součet je 255

Počítačové sítě pro V3.x Teoretická průprava II. Ing. František Kovařík

SSL Secure Sockets Layer

Počítačové sítě. Další informace naleznete na :

Směrování. static routing statické Při statickém směrování administrátor manuálně vloží směrovací informace do směrovací tabulky.

Úvod do teorie informace

Projektování distribuovaných systémů Lekce 2 Ing. Jiří ledvina, CSc

Routování směrovač. směrovač

Směrovací protokoly, propojování sítí

File Transfer Protocol (FTP)

10. Samoorganizující se sítě (P2P a ad-hoc sítě)

10. Samoorganizující se sítě (P2P a ad-hoc sítě)

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Obrázek 1: Struktura programu z hlediska zapojení

Jak se měří síťové toky? A k čemu to je? Martin Žádník

Výukový materiál zpracovaný v rámci projektu. Základní škola Sokolov, Běžecká 2055 pracoviště Boženy Němcové 1784

JAK ČÍST TUTO PREZENTACI

Propojování sítí,, aktivní prvky a jejich principy

Univerzita Jana Evangelisty Purkyně Automatizace Téma: Datová komunikace. Osnova přednášky

Operační systémy 1. Přednáška číslo Souborové systémy

Směrování- OSPF. Směrování podle stavu linek (LSA) Spolehlivé záplavové doručování

Konfigurace síťových stanic

UAI/612 - Cloudová Řešení. Technologie

Představíme základy bezdrátových sítí. Popíšeme jednotlivé typy sítí a zabezpečení.

Komunikace mezi uživateli: možnost posílání dat na velké vzdálenosti

Datové struktury 2: Rozptylovací tabulky

MPLS Penultimate Hop Popping

Portfolio úložišť WD pro datová centra Kapacitní úložiště prošlo vývojem

Flow monitoring a NBA

Aktivní prvky: brány a směrovače. směrovače

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Ladislav Pešička KIV FAV ZČU Plzeň

Databáze I. 5. přednáška. Helena Palovská

Datové struktury. Zuzana Majdišová

Topologie počítačových sítí Topologie = popisuje způsob zapojení sítí, jejich architekturu adt 1) Sběrnicová topologie (BUS)

Architektura klient-server

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Profibus (EN 50170) Standard pro distribuované průmyslové řízení. Distribuované systémy: ISO 7498 (Open System Interconnect)

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale

Instalace Active Directory

Nezávislé unicast a multicast topologie s využitím MBGP

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Počítačové sítě 1 Přednáška č.5

Vzájemné vyloučení procesů

Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech

Směrování VoIP provozu v datových sítích

Zásobník protokolů TCP/IP

Zásobník protokolů TCP/IP

Telekomunikační sítě Protokolové modely

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Windows Server 2003 Active Directory

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Model ISO - OSI. 5 až 7 - uživatelská část, 1 až 3 - síťová část

Binární vyhledávací stromy pokročilé partie

Konfigurace DHCP serveru a překladu adres na směrovačích Cisco

Principy ATM sítí. Ing. Vladimír Horák Ústav výpočetní techniky Univerzity Karlovy Operační centrum sítě PASNET

11. Tabu prohledávání

Technologie MPLS X36MTI. Michal Petřík

InternetovéTechnologie

Hashovací funkce. Andrew Kozlík KA MFF UK

Transkript:

Distribuované Hashovací Tabulky Jaroslav Bárta 1

Obsah Obsah: Architektury sítí Hledání v P2P Hashovací tabulka Příklady DHT Chord Pastry CAN Možnosti k vylepšení Závěr 2

Architektury P2P sítí Sítě Klient / Server Peer-to-Peer Peer-to-Peer Nestrukturované Strukturované Centralizované Decentralizované Hybridní DHT ostatní 3

Klient / Server Server je centrální prvek sítě, potřebuje velkou výpočetní kapacitu Jen on jediný poskytuje klientům služby Klienti mohou být pouze terminály Při vyřazení centrálního prvku je celý systém nefunkční - přetížení, DoS útoky 4

Peer to Peer obecně Zdroje (data nebo služby) jsou sdíleny mezi účastníky (peery) systému Ke zdrojům může přistupovat libovolný peer Každý peer je poskytovatelem a zároveň poptávajícím (klient i server v jednom) Nestrukturované Nemá předem definovanou topologii Uzly znají pouze své sousedy Strukturované Garantují výsledek dotazu v konečném čase 5

Centralizované P2P Existuje centrální entita Je nezbytná pro správný běh systému V centrálním serveru se uchovávají informace o ostatních peerech Slouží ke zjištění, který peer má požadované zdroje, dále už komunikují mezi sebou 6

Decentralizované P2P Žádná centrální entita Systém funguje i v případě vyřazení libovolného peeru Vyhledávání bývá založené na broadcastech Velká komunikační režije a malá spolehlivost 7

Hybridní P2P Kompromis předchozích dvou konceptů Centrální entity jsou dynamické, když nějaká vypadne, jeji funkci nahradí jiná Všichni jsou si rovni, ale někteří jsou si rovnější 8

Strukturované P2P Snaží se docílit toho, aby každý uzel sítě mohl efektivně vyhledat data uložená v síti, a to i pokud tato data nejsou vůbec běžná. To vyžaduje určitou množinu odkazů mezi uzly sítě, uspořádaných do nějaké struktury (překryvná síť) Nejběžnější typ strukturované P2P sítě je právě distribuovaná hashovací tabulka - DHT. 9

Námět Hledání v strukturované P2P Každý uzel bude zodpovědný za nějaké konkrétní data (bude je uchovávat, nebo bude vědět kde jsou) Když jiný uzel požaduje nějaká data, dotáže se toho uzlu, který je za ně zodpovědný Úskalí Předejít uzkým místům rovnoměrně rozdělit povinnosti mezi existující uzly Přizpůsobit se příchodům a odchodům uzlů Přidělit povinnosti uzlu, který se do systému připojí Přerozdělit povinnosti uzlu, který systém opouští 10

Srovnání vyhledávácích konceptů 11

Sdružuje data ke klíči Hashovací tabulka Klíč je zahashován k nalezení pozice v tabulce Každá pozice v tabulce může uchovávat více dat (nehrozí kolize) V DHT jsou pozicemi v tabulce jednotlivé uzly Klíč je zahashován k nalezení příslušného uzlu Data i zátěž jsou vyváženy lookup (key) data insert (key, data) key pos hash function bezkolizní h(key)%n 2 lookup (key) data insert (key, data) key hash bucket (pozice) hash table pos hash function bezkolizní h(key)%n 2 uzel 0 1 2 3... N-1 0 1 2 N-1... x y z 12

DHT Problémy Dynamičnost: přidávání a odebírání uzlů Při celočíselném dělení počtem uzlů M zcela každý klíč K změní svoji pozici. h(k) mod (M-1) h(k) mod M h(k) mod (M+1) Řešení: používání konzistentního hashování Definuje se pevný adresní prostor Všechny hodnoty hashovací funkce spadají do tohoto prostoru nezávisle na počtu uzlů Prostor se rozdělí mezi uzly, při změně počtu uzlů změní svoji pozici jen N/M klíčů (kde N je celkový počet klíčů) 13

DHT Problémy Rozsáhlost: znalost všech uzlů Je potřeba znát uzel, na který chceme data uložit, nebo ve kterých chceme data vyhledávat Řešení: Overlay Routing Každý uzel si bude pamatovat jen několik málo svých sousedů Zprávy jsou přeposílány přes sousedy až k cílovému uzlu Sousedé nemusí být s uzlem přímo spojeni, ani si být geograficky blízké, je to jen odkaz na nějaký další uzel 14

Měření výkonu Degree: (stupeň uzlu teorie grafů) počet sousedů, se kterými uzel udržuje kontakt (odkazy na další uzly pro rychlejší vyhledávání) Hop Count: počet skoků při směrování potřebných k přenosu zprávy z jakéhokoli uzlu do jakéhokoli jiného The degree of Fault Tolerance: stupeň odolnosti proti poruchám jaká část uzlů smí selhat, anižby se ztratila data nebo se znemožnilo správnému směrování The Maintenance Overhead: režie údržby, jak často chodí zprávy mezi uzly a sousedy, aby se udrželi odkazy aktuální při souvislých příchodech a odchodech jiných uzlů The degree of Load Balance: stupeň vyvážení výkonu, jak rovnoměrně jsou klíče rozdělené mezi uzly, a kolik záťěže každý uzel pociťuje jako mezilehlý uzel pro ostatní směrování 15

Adresový prostor Každý tedy uzel má Svůj rozsah v adresovém prostoru Odkazy na další uzly Kolik odkazů? Minimální routovací tabulka Počet odkazů O(1) Délka cesty O(N) Snadno se roztrhne 16

Adresový prostor Maximální routovací tabulka Počet odkazů O(N) Délka cesty O(1) Náročná na údržbu Optimální routovací tabulka Počet odkazů O(log N) Délka cesty O(log N) Kompromis předchozích dvou extrémů 17

DHT Interface Minimální interface (data-centric) Lookup(key) IP address Podporuje velká řada aplikací, ale má to několik omezení Klíč nemé žádný sémantický význam Hodnota je závislá na aplikaci DHT neuchovávají žádné soubory Slouží hlavně pro vyhledání serveru, na kterém se soubor nachází, ale dá se na něm vystavět úložiště Lookup(key) data Insert(key, data) 18

DHT kontext CFS DHash Chord TCP/IP User Application store_file load_file File System store_block load_block Reliable Block Storage lookup DHT send receive Transport Získává a ukládá soubory Mapuje soubory do bloků Úložiště Replikace Cachování Lookup Routing Komunikace 19

DHT Systémy Nejznámější DHT Chord Pastry CAN Otázky Jak rozdělit adresový prostor mezi uzly? Jak nalezneme uzel? Jak se spravuje routovací tabulka v uzlu? Jak si poradit s rychle měnící se počet účastníků? (časté příchody a odchody uzlů) 20

Chord (MIT) Kruhový m-bitový prostor pro ID uzlů i klíčů ID uzlu = SHA-1(IP adresa) ID klíče = SHA-1(klíč) Klíč je namapován na první uzel, jehož ID je rovno nebo větší než ID klíče Každý uzel má na starost O(K/N) klíčů* O(K/N) klíčů se musí přemapovat, pokud se uzel připojí nebo odpojí * N = počet uzlů, K = celkový počet klíčů N48 N51 K54 N42 N56 m=6 N38 K38 2 m -1 0 N1 N8 K10 N14 N21 K24 N32 K30 21

Chord - Odkazy a vyhledávání Základní Chord: každý uzel zná jen 2 další uzly v kruhu Následníka Předchůdce (je potřeba pro údržbu kruhu) Vyhledávání je docíleno přeposíláním požadavků dokola přes následníky Požaduje O(N) skoků m=6 N56 K54 N51 N48 2 m -1 0 N1 lookup(k54) N8 N14 N42 N21 N38 N32 22

Chord Odkazy a vyhledávání Každý uzel zná m dalších uzlů kruhu Následníci: i-tý n-tého uzlu (tzv. Finger) ukazuje na uzel n+2 i (nebo následníka) Předchůdce (pro údržbu kruhu) O(log N) odkazů na uzel Vyhledávání je docíleno přeposíláním požadavku na nejbližší menší finger O(log N) skoků N48 N51 K54 N42 N56 m=6 +32 2 m -1 0 N1 lookup(k54) +16 +8 Finger table N8+1 N14 N8+2 N14 N8+4 N14 N8+8 N21 N8+16 N32 N8+32 N42 N8 +1 +2 +4 N14 N21 N38 N32 23

Chord Správa kruhu Pro správnou funkci potřebuje Chord udržovat následující Pro každý klíč k, succ(k) je zodpovědný za k Ukazatel na následníka musí být správný Finger tabulka není nezbytná pro správnou funkci Vždy se dá vyhledávat pouze pomocí následníků (za cenu O(N) dlouhé cesty) Finger tabulka se může aktualizovat průběžně sama 24

Chord Připojení do kruhu Připojení má 3 fáze: 1) Inicializace všech fingers nového uzlu j Naleznout nějaký uzel n, který je již v kruhu Požádat n o vyhledání uzlů j+20, j+2 1, j+2 2 Výsledky dotazů vyplní finger tabulku uzlu j 2) Aktualizace fingers existujících uzlů 3) Přeposlání klíčů z následníka na nový uzel 25

Chord Připojení do kruhu (2) Aktualizace fingers existujících uzlů Nový uzel j volá funkci update na existujících uzlech, které mají odkazovat na j Uzly v rozsahu [j-2 i, pred(j)-2 i +1] O(log N) uzlů musí být aktualizováno N48 N51 N56 m=6 2 m -1 0 N1 +16-16 6 N8+1 N14 N8+2 N14 N8+4 N14 N8+8 N21 N8+16 N32 N28 N8+32 N42 N8 12 N14 N42 N21 N38 N32 N28 26

Chord Připojení do kruhu 3 Přenos klíčů na nový uzel Nový uzel se připojí na svého následníka Zkopíruje klíče z následníka do nového uzlu Aktualizuje ukazatele následníka a předchůdce a odstraní klíče Přenášeny jsou jenom klíče v požadovaném rozsahu N21 N21 N21 N21 N32 N32 N28 N32 N28 N32 N28 K24 K24 K24 K24 K30 K24 K30 K30 K30 27

Chord - Stabilizace Případ 1: finger tabulky jsou docela aktuální Případ 2: ukazatelé na následníka jsou správně, ale fingers ne Případ 3: ukazatelé na následníka jsou nepřesné, nebo přenos klíčů nebyl dokončen. Stabilizační algoritmus periodicky ověřuje a obnovuje odkazy uzlů (včetně fingers) Základní princip (pro uzel x): y = x.succ p = y.pred if p (x, y) stabilize x (x.succ = p) notify y (y.pred = x) Průběžně stabilizuje systém, pokud se žádný nový uzel nepřipojí nebo neodpojí N32 N28 N21 28

Chord Selhání uzlu Selhání uzlů by mohlo způsobit špatné vyhledávání N8 nezná správného nástupce, takže hledání K19 selže Řešení: seznám následníků Každý uzel n zná r bezprostředních následníků Při selhání, zná n ještě dalšího funkčního následníka a aktualizuje seznam následníků Správné odkazy na následníka garantují správné hledání N48 N51 N42 N56 m=6 N38 2 m -1 0 N1 lookup(k19)? +8 +16 N32 N8 +1 +2 +4 N14 N18 K19 N21 29

Chord Selhání uzlu Seznam následníků garantuje správné hledání jen s nějakou pravděpodobností Volbou r je možno udělat tuto pravděpodobnost na selhání hledání libovolně malou Předpokládejme, že polovina uzlů selhala a selhání jsou vzájemně nezávislé P(n.successor-list all dead) = 0.5 r P(n neporuší kruh) = 1-0.5 r P(žádný poškozený uzel) = (1 0.5 r ) N Pro r = 2log(N) je pravděpodobnost = 1 1/N S velkou pravděpodobností (1/N) kruh nebude přerušen 30

Chord - Topologie Uzly jsou numericky blízké ale to nezaručuje geografickou blízkost (1M nodes = 10+ hops) 31

Pastry (MSR) m-bitový kruhový prostor pro ID uzlů i klíčů Adresa o základu 2 b má m/b číslic ID uzlu = SHA-1(IP adresa uzlu) ID klíče = SHA-1(klíč) Routovací tabulka obsahuje Leaf set : blízkost v prostoru klíčů Routing table : odkazy na dlouhou vzdálenost Neighborhood set : síťová blizkost Základní routování Pokud je klíč v prostoru klíčů uzlu použít přímý odkaz z Leaf setu Jinak použít odkaz z Routing table na zpracování další číslice klíče 32

Pastry - Leaf set Každý uzel udržuje IP adresy několika L uzlů s numericky blízkými ID (větší i menší ID) Efektivní směrování Odolnost Detekce chyb (keep-alive) 33

Pastry Routing table m=16 L uzlů s numericky blízkými ID MUSÍ BÝT STÁLE AKTUÁLNÍ Log 2 b N řádek (Log 2 b 2 m = m/b) L síťových sousedů b=2 m/b řádek Node ID 10233102 Leaf set < SMALLER LARGER > 10233033 10233021 10233120 10233122 10233001 10233000 10233230 10233232 Routing Table 02212102 1 22301203 31203203 0 11301233 12230203 13021022 10031203 10132102 2 10323302 10200230 10211302 10222302 3 10230322 10231000 10232121 3 10233001 1 10233232 0 10233120 2 Neighborhood set 2 b -1 sloupců 13021022 10200230 11301233 31301233 02212102 22301203 31203203 33213321 b=2, ID uzlu má základ 4 (16 bitů) Záznamy v m-tém sloupci mají m jako další číslici n th číslice aktuálního uzlu Záznamy v n-té řádce mají společných prvních n číslic s aktuálním uzlem [ prefix další-číslo zbytek ] Políčka bez vhodných ID uzlů zůstávají prázdné 34

Pastry - Směrování Log 2 b N kroků O(log N) odkazů Uzel 65A1FC chce vyhledat D45A1C D D4 D46 Leaf set 35

Pastry Směrovací algoritmus Pokud je cíl v rozsahu Leaf setu Přeposlat na numericky nejbližší uzel Pokud není L = délka společného prefixu D = L-tá číslice cíle D Pokud existuje R L D Přeposlat na R L Pokud neexistuje Přeposlat na známý uzel* který Má společný alespoň stejně dlouhý prefix Nebo je numericky bližší než tento uzel * z Leaf Setu, Routing Table nebo Neighborhood setu 36

Pastry Vlastnosti směrování Velikost routovací tabulky O(log N) 2b * log 2 b N + 2L Počet přeposlání zprávy O(log N) Síť je stabilní, pokud současně neselže L/2 uzlů se sousedními ID Počet skoků při směrování Bez chyb O(log N) průměrně méně než log 2 b N Maximálně 128/b +1 Během opravování chyby O(N) 37

Pastry Připojení nového uzlu X se připojuje X zná A (A je blízko X) X 0629 0629's routing table Zpráva o připojení A 5324 Směruje zprávu na uzel numericky nejbližší k ID uzlu X D s leaf set A 0???? B 1 0??? B 0748 C 2 06?? D 4 062? A s neighborhood set C 0605 D 0620 38

Pastry Routing table nového uzlu Leaf set Zkopíruje se od souseda Routing table Nashromáždí routovací tabulky z uzlů potkaných během připojování do sítě, sdílí stejné prefixy Může být nekompletní Neighborhood set Vyzkouší uzly z nashromážděné routovací tabulky Požádá o Neighborhood sety k sousedním uzlům 39

Pastry Odpojení uzlu Uzel je považován za odpojený, pokud jeho bezprostřední sousedé v prostoru ID uzlů s ním nemohou komunikovat K nahrazení odpojeného uzlu v Leaf, uzel kontaktuje živý uzel s největším indexem na straně odpojeného uzlu a požádá o jeho Leaf set K opravení špatného záznamu R d lv routovací tabulce, uzel kontaktuje první uzel odkazující na jiný záznam R i, i d l stejné řádky a požádá tento uzel o záznam R d l Pokud uzel v M tabulce neodpovídá, uzel se dotáže jiného uzlu v M tabulce na jeho M tabulku, zkontroluje vzdálenost každého nově objeveného uzlu a aktualizuje svoji M tabulku 40

CAN (Berkeley) Kartézský prostor (ddimenzionální) Hypercube, d-torus Postupně se prostor rozděluje mezi uzly, které se připojí Uzel (buňka) odpovědná za uzel k je určena hashováním k pro každou dimenzi h y (k) d=2 insert(k,data) h x (k) 4 2 2 1 1 2 retrieve(k) 3 41

CAN - Odkazy a vyhledávání Uzel A se stará pouze o své bezprostřední sousedy (N - sever, S - jih, E - východ, W - západ) 2d sousedů na uzel Zprávy jsou směrovány na souseda s nejmenší kartézkou vzdáleností Více dimenzí rychlejší směrování, ale také více sousedů větší nároky na každý uzel Průměrně (dn 1/d )/4 skoků Více možností: můžeme zvolit jinou cestu v případě chyby d=2 W N A S E B 42

CAN Landmark Směrování CAN uzly nemají předem definované ID Uzly mohou být rozmístěny v souladu s lokalitou Využití m dobře známých landmark strojů (př. root DNS servery) Každý CAN uzel si spočítá své RTT ke všem landmarkům Sežadí landmarky podle rostoucí RTT: m! možných seřazení CAN konstrukce Umístit uzly se stejným sezařením blizko sebe v CANu Postupně rozdělovat prostor do m! zón: m zón na x-ose, m-1 na y-ose, a tak dál, podle počtu dimenzí Uzel interpretuje své seřazení jako souřadnice ve své zóně 43

CAN - Topologie C;A;B C A Použítí m landmarků k rozdělení prostoru do m! zón A;C;B C;B;A Topologicky blízké uzly jsou ve stejné zóně A;B;C B;A;C B B;C;A44

DHT podporuje mnoho aplikací Sdílení souborů [CFS, OceanStore, PAST, ] Web cache [Squirrel, ] Necenzurované úložiště [Eternity, FreeNet, ] Aplikační multicast [Narada, ] Oznámení událostí [Scribe] Jmenné služby [ChordDNS, INS, ] Dotazy a indexování [Kademlia, ] Komunikační primitiva [I3, ] Záložní úložiště [HiveNet] Web archív [Herodotus] 45

Vylepšení - Hierarchické DHT Internet je hiearchicky uspořádán Jde to u DHT také? Hiearchické DHT: více překryvných sítí spravovaných (klidně různými) DHT systémy (Chord, CAN, etc.) Nejprve se lokalizuje skupina odpovědná za klíč v nejvyšší úrovni DHT Potom najít uzel v další úrovni překryvné sítě, atd. Označením nejspolehlivějších uzlů za super-uzly (část další překryvné DHT), počet skoků při směrování významně poklesne Jak je možné nasadit a udržovat takovou architekturu? 46

Hiearchická DHT: Příklad CAN Group s 1 s 4 Top-level Chord Overlay s 2 s 3 Chord Group 47

DHT Vylepšení - Dotazy DHT umožňuje najít data velmi rychle... Lookup( Ahoj.txt ) IP address...ale funguje to pouze pro přesný dotaz Uživatelé mají rádi obecné dotazy, wildcardy Lookup( Ahoj.* ) IP address Dotazy mohou být nepřesné Lookup( Ahuj.txt ) IP address Data by se dala indexovat pomocí částečných dotazů (klíčová slova) Další možnost: Fuzzy srovnávání (UCSB) 48

DHT Vylepšení Lepší obsluha chyb Speciálně Byzanské chyby: Jeden pokažený uzel může poškozovat systém Uvažování dynamičnosti systému Velký systém nikdy nedosáhne ideálního stavu Práce s nedůvěryhodným účastníkem Autentikace dat, integrita směrovacích tabulek, anonymita a necenzurovatelnost, reputace Povědomí o síťovém provozu, vyrovnávání zátěže 49

Závěr DHT je jednoduchá a silná abstrakce Základní kámen mnoha distribuovaných systémů(souborové systémy, aplikační multicasty, distribuované cache, atd.) Je mnoho druhů DHT, s různými pro i proti Vyvažování mezi počtem odkazů (stupěň uzlu), rychlostí vyhledávání (počet skoků), a snadností údržby Systém musí podporovat rychlé změny účastníků Obsloužení připojení, odpojení nebo selhání není snadné Dynamická P2P síť se těžko analyzuje a spravuje Mnoho nedořešených oblastí je hodno prozkoumání 50

Děkuji za pozornost Zdroje A Content-Addressable Network for Similarity Search in Metric Spaces (Fabrizio Falchi) Structured Peer-to-Peer Networks (Wolf-Tilo Balke and Wolf Siberski) Distributed Hash Table Algorithms (Wolf-Tilo Balke and Wolf Siberski) Distributed Algorithms for P2P, DHT Porquerolles (Pascal Felber) 51