Hálózatba kapcsolt erőforrás platformok és alkalmazásaik. Simon Csaba TMIT 2017

Hasonló dokumentumok
Elosztott Hash Táblák. Jelasity Márk

Elosztott adatbázisok és peerto-peer. Simon Csaba

Hálózatok II 2005/ : Peer-To-Peer Hálózatok II

Számítógépes Hálózatok 2012

4: Az IP Prefix Lookup Probléma Bináris keresés hosszosztályok alapján. HálózatokII, 2007

Hálózati réteg. WSN topológia. Útvonalválasztás.

Teljesen elosztott adatbányászat alprojekt

Big data amikor a probléma az adat mérete maga

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) (RFC 821/822) Domain Name System

Mapping Sequencing Reads to a Reference Genome

Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel

Számítógépes Hálózatok

Hálózati architektúrák laborgyakorlat

(NGB_TA024_1) MÉRÉSI JEGYZŐKÖNYV

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Számítógépes Hálózatok GY 8.hét

Hálózatba kapcsolt erőforrás platformok és alkalmazásaik. Simon Csaba TMIT 2017

Ethernet/IP címzés - gyakorlat

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter

Modbus kommunikáció légkondícionálókhoz

ELOECMSzakmai Kongresszus2013

ANGOL NYELV KÖZÉPSZINT SZÓBELI VIZSGA I. VIZSGÁZTATÓI PÉLDÁNY

Peer-to-peer alapú betörésérzékelés

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT október 29. HSNLab SINCE 1992

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

Titkosítás NetWare környezetben

Using the CW-Net in a user defined IP network

Újdonságok Nexus Platformon

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

Sebastián Sáez Senior Trade Economist INTERNATIONAL TRADE DEPARTMENT WORLD BANK

STUDENT LOGBOOK. 1 week general practice course for the 6 th year medical students SEMMELWEIS EGYETEM. Name of the student:

Készítette: Weimann András

Hálózati Technológiák és Alkalmazások

Kommunikációs rendszerek programozása. Routing Information Protocol (RIP)

Számlakezelés az ELO DocXtraktor modullal

Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

Társasjáték az Instant Tanulókártya csomagokhoz

RHadoop. Kocsis Imre Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Csima Judit április 9.

Create & validate a signature

ANGOL NYELVI SZINTFELMÉRŐ 2013 A CSOPORT. on of for from in by with up to at

Pletykaalapú gépi tanulás teljesen elosztott környezetben

SQL Server High Availability

Summer of LabVIEW The Sunny Side of System Design

Számítógépes Hálózatok 2011

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 5. rész: Elnevezési rendszerek

ANGOL NYELV KÖZÉPSZINT SZÓBELI VIZSGA I. VIZSGÁZTATÓI PÉLDÁNY

INDEXSTRUKTÚRÁK III.

ELOSZTOTT DIGITÁLIS KÖNYVTÁRI PROJEKT EURÓPÁBAN

Hozzunk ki többet abból amink van. Fehér Lajos

Elosztott adatbázis-kezelő formális elemzése

A CAN mint ipari kommunikációs protokoll CAN as industrial communication protocol

ELO Digital Office ERP integráció

Alacsony fogyasztású IoT rádiós technológiák

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

1. Mit jelent a /24 címmel azonosított alhálózat?

Bérprogram vásárlásakor az Ügyfélnek ben és levélben is megküldjük a termék letöltéséhez és aktiválásához szükséges termékszámot.

Phenotype. Genotype. It is like any other experiment! What is a bioinformatics experiment? Remember the Goal. Infectious Disease Paradigm

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

Széchenyi István Egyetem

Tudományos Ismeretterjesztő Társulat

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

Programozás alapjai II. (7. ea) C++

ANGOL NYELVI SZINTFELMÉRŐ 2008 A CSOPORT

IPv6 Elmélet és gyakorlat

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Algoritmusok és adatszerkezetek gyakorlat 07

A HATÁSOS PREZENTÁCIÓK TITKAI. Bincze Bea Szeptember 30.

Számítógépes Hálózatok GY 9.hét

Analitikai megoldások IBM Power és FlashSystem alapokon. Mosolygó Ferenc - Avnet

Szakmai továbbképzési nap akadémiai oktatóknak december 14. HISZK, Hódmezővásárhely / Webex

Táblázatok fontosabb műveletei 1

V2V - routing. Intelligens közlekedési rendszerek. VITMMA10 Okos város MSc mellékspecializáció. Simon Csaba

Elosztott rendszerek

Előszó.2. Starter exercises. 3. Exercises for kids.. 9. Our comic...17

Konfiguráljuk be a TCP/IP protokolt a szerveren: LOAD INETCFG A menüpontokból válasszuk ki a Proctcols menüpontot:

WS 2013 elődöntő ICND 1+ teszt

Muppet: Gyors adatok MapReduce stílusú feldolgozása. Muppet: MapReduce-Style Processing of Fast Data

Nyíri Gábor

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Peer-to-peer alapú elosztott fájlrendszerek

Tűzfal megoldások. ComNETWORX nap, I. 30. ComNETWORX Rt.

Az internet ökoszisztémája és evolúciója. Gyakorlat 4

EXKLUZÍV AJÁNDÉKANYAGOD A Phrasal Verb hadsereg! 2. rész

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

A DNS64 és NAT64 IPv6 áttérési technikák egyes implementációinak teljesítőképesség- és stabilitás-vizsgálata. Répás Sándor

Lopocsi Istvánné MINTA DOLGOZATOK FELTÉTELES MONDATOK. (1 st, 2 nd, 3 rd CONDITIONAL) + ANSWER KEY PRESENT PERFECT + ANSWER KEY

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

Számítógép hálózatok, osztott rendszerek 2009

CISCO gyakorlati segédlet. Összeállította: Balogh Zoltán

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

Rezgésdiagnosztika. Diagnosztika

Valós idejű megoldások: Realtime ODS és Database In-Memory tapasztalatok

Az internet ökoszisztémája és evolúciója. Gyakorlat 4

Átírás:

Hálózatba kapcsolt erőforrás platformok és alkalmazásaik Simon Csaba TMIT 2017

Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan - MIT

Web szerver terhelésének elosztása Mirroring A teljes tartalom duplikálva több helyen Nagy forgalom, nagy adattárolási kényszer Nagy terhelés minden mirror oldalon Az összes európai ugyanahhoz az európai mirror szerverhez fordul amikor az USA-ban alszanak, az amerikai mirror szerver pedig kihasználatlan Caching A tartalmat részekre vágjuk, és elosztottan tároljuk A népszerű tartalmakat mindenhol tárolják Ha nincs nálam, tudom kitől kell kérni Hagyományos hash függvény C = hash (o) mod N C cache, o object, N cache szerverek száma Probléma: Ha egy cache eltűnik, a teljes tartalmat újra kell osztani C = hash (o) mod (N-1) 3

Consistent hashing 4 D. Karger, E. Lehman, T. Leighton, M. Levine, D. Lewin, R. Panigrahy, Consistent hashing and random trees: distributed caching protocols for relieving hot spots on the World Wide Web, Proceedings of ACM Symposium on Theory of Computing, El Paso, Texas, 1997. http://theory.lcs.mit.edu/~karger/papers/web.ps.gz Tim-Berners Lee és T. Leighton eredeti ötlete

5 Consistent Hashing m bites azonosító tér a fájloknak és a csomópontoknak m tetszőleges szám, elég nagy, hogy az ütközés valószínűsége kicsi legyen Fájl azonosító = H(Kulcs) Kulcs = Let_It_Be, H(Kulcs) = 60 Csomópont azonosító = H(IP cím) IP = 198.10.10.1, H(IP cím) = 123 Egyenletes eloszlással Hogyan lehet a fájl azonosítókat a csomópont azonosítókhoz rendelni?

Consistent Hashing 6 Azonosítók egy azonosító gyűrű mentén elhelyezve modulo 2 m Példa: m = 6 Minden K kulcs az őt követő legközelebbi N csomópontnál kerül tárolásra N = successor(k)

Consistent Hashing A csomópont felelős az 1. és 4. kulcsokért Ha C kilép, A lesz felelős a 3. kulcsért is Ha D belép, átveszi a felelősséget a 3. és 4. kulcsért A többi megfeleltetés változatlan 7

8 Consistent hashing - keresés Minden csomópont ismeri az összes többi csomópontot Nagy útválasztó táblák - O(N) Gyors keresés O(1) Hol van a Let_It_Be? H(Let_It_Be)=K46 N48 tárolja a K46-ot

9 Chord: alap keresés Minden csomópont ismeri az őt követőt a gyűrűn Az öt megelőzőt is hasznos ismernie Keresési idő ~ üzenetek száma: O(N)

Mutató táblák (Finger tables) 10 Minden egyes csomópont m számú további csomópontot tart nyilván Az előre mutató távolság exponenciálisan növekszik finger[i] = successor (n + 2 ) i-1

Chord: gyors/skálázódó keresés A mutató táblák segítségével a keresésnek O(log N) csomópontot kell bejárnia 11

Chord: gyors/skálázódó keresés A mutató táblák segítségével a keresésnek O(log N) csomópontot kell bejárnia 12

13 Chord: gyors/skálázódó keresés Minden csomópont m további bejegyzést tartalmaz Minél közelebbi a kulcs, annál részletesebb információval rendelkezik róla a csomópont Általában nem biztosítja az azonnali célba jutást

14 Új érkező Három lépésben (alap működés) Újonnan érkező mutató táblájának feltöltése Gyűrű csomópontok mutató táblájának frissítése Kulcsok cseréje Lusta vagy kevésbé agresszív működés Csak a követő csomópont beállítása Periodikus követő (successor), megelőző (predecessor) ellenőrzés Periodikus mutató tábla frissítés

15 Új érkező (mutató táblák) Kiindulás: bármely p ismert csomópontból Kérjük meg p-t, hogy építse fel a mutató táblánkat Táblázat visszaadása N16 Lookup (17, 18, 20, 24, 32, 48)

16 Új érkező A gyűrű csomópontok mutató tábláinak frissítése új érkező a frissítés funkciót kelti életre a szomszédos csomópontokban csomópontok rekurzívan frissíttetik a további csomópontok mutató tábláit

17 Új érkező N26 belép a rendszerbe N26.successor = N32 N26 értesíti N32-t N32.predecessor = N26

18 Új érkező N26 átmásolja a ráeső kulcsokat N21.frissítés: lekéri N32-től a predecessor-t, aki N26

19 Új érkező N21.successor = N26 N21 értesíti N26-ot a létezéséről N26.predecessor = N21

Új érkező: keresés Korrekt mutató táblák esetén O(log N) Ha csak a követő lánc helyes, akkor is korrekt, de lassabb működés 20

21 Hibák kezelése Csomópontok kiesése (hiba) helytelen keresést eredményezhet Mi van ha az N14, N21 és N32 egyszerre meghibásodik, vagy kilép? Hogyan tud az N8 tudomást szerezni az N38-ról?

22 Hibák kezelése Csomópontok kiesése (hiba) helytelen keresést eredményezhet Mi van ha az N14, N21 és N32 egyszerre meghibásodik, vagy kilép? Hogyan tud az N8 tudomást szerezni az N38-ról?

23 Hibák kezelése (II) Követő lista Az egyetlen követő helyett r soron követő csomópont regisztrációja Hiba esetén ismeri a soron következő (élő) csomópontot helyes keresés Valószínűségi garancia r megválasztása, hogy a keresési hiba valószínűsége megfelelően alacsony legyen r ~ O(log N)

24 Chord előnyök Hatékony: O(log N) üzenet keresésenként ahol N a kiszolgálók (csomópontok) száma Alacsony szórás a keresési időben A CAN-ben nagy a szórás Skálázódik: O(log N) állapot csomópontonként Robosztus: megbirkózik jelentős résztvevő változással Állítások bizonyításai [tech_report] http://www.pdos.lcs.mit.edu/chord/papers/chord-tn.ps Feltételezés: nincs rosszakaratú résztvevő

25 Chord előnyök Minden csomópont K/N kulcsot kezel (N - node, K - key ) Be/kilépés egy N-tagú hálózatba: csak O(K/N) kulcsot kell átmozgatni Csak a dinamikus csomópont számára Egy keresés O(log N) üzenetet generál Be/kilépés után a mutató táblák frissítéséhez O(log 2 N) üzenet szükséges

26 Hátrányok Merev finger (routing) tábla! Nehezíti a tábla helyreállítását node-ok kiesése után Lehetetlenné teszi a közelségi információ felhasználását A bejövő és kimenő irányú üzenetek eloszlása éppen ellentétes Nem lehet a bejövő forgalmat a routing tábla frissítésére használni

27 Bidirectionnal Chord Kétirányú routing tábla A tábla kétszer akkorára nő Kétszer annyi vezérlő üzenetre van szükség

28 Chord implementáció 3000 soros C++ kód Library amely tetszőleges alkalmazáshoz linkelhető UsenetDHT A teljes replikálás helyett elosztott tárolás OverCite A CiteSeer elosztott változata

pred(n s ) = n succ(n p ) = n 29 stabilize() New n joins the DHT n s predecessor = nil n acquires n s as successor via some n n notifies n s being the new predecessor n s acquires n as its predecessor pred(n s ) = n p n nil succ(n p ) = n s n p runs stabilize n p asks n s for its predecessor (now n) n p acquires n as its successor n p notifies n n will acquire n p as its predecessor all predecessor and successor pointers are now correct n p fingers still need to be fixed, but old fingers will still work

fix_finger() 30 Why do we0 have to fix fingers? If we are operating the Chord by the numbers?

fix_finger() 31 Why do we have to fix fingers? If we are operating the Chord by the numbers? Who notifies the finger table-owners about a leaving member? Predecessors + stabilize() are not handling this issue take the french leave Non-transitive connectivity. Bidirectional Chord is not enough (stochastic) Refresh the entries of a finger table Otherwise the time of a search increases (greedy solutions for failover)

Mérési eredmények A késleltetés csak lassan növekszik, ha növeljük a csomópontokat 32

33 Mérési eredmények A késleltetés csak lassan növekszik, ha növeljük a csomópontokat Átlagos úthossz: ½ log 2 N A chord egy robosztus protokoll

34 Irodalom I. Stoica, R. Morris, D. Karger, F. Kaashoek, H. Balakrishnan, "Chord: A Scalable Peer-To-Peer Lookup Service for Internet Applications," ACM Sigcomm 2001. http://www.acm.org/sigcomm/sigcomm2001/p12.html The Chord Project http://pdos.csail.mit.edu/chord/

Feladattervezés Mit tudtok bizonyítani a Chord szimulátorral?

36 Addressed Difficult Problems (1) Load balance: distributed hash function, spreading keys evenly over nodes Decentralization: chord is fully distributed, no node more important than other, improves robustness Scalability: logarithmic growth of lookup costs with number of nodes in network, even very large systems are feasible

37 Addressed Difficult Problems (2) Availability: chord automatically adjusts its internal tables to ensure that the node responsible for a key can always be found Flexible naming: no constraints on the structure of the keys key-space is flat, flexibility in how to map names to Chord keys

http://www.tmit.bme.hu/hakap 38

39 Feladat: skálázható-e a Chord? 20 tartalom, 10 node 10 random keresés indítása Keresés során: ugrások száma Screenshot: node-ok Excelben: hisztogram(ugrások száma)