87
1 P2P Tehnoloogiad MTAT.08.002 (2 AP) Omadused ja P2P Mudelid Ilja Livenson [email protected]

P2P Tehnoloogiad - · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Embed Size (px)

Citation preview

Page 1: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

1

P2P Tehnoloogiad MTAT.08.002 (2 AP)

Omadused ja P2P Mudelid

Ilja [email protected]

Page 2: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

2

Eelmine kord

● Esimene tähtaeg– 02.10.2006 (aga mida varem, seda parem!)

● Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

● Puhas vs hübriid P2P süsteem● Communication –> Group Management

-> Robustness -> Class-specific -> Application specific tasemed

Page 3: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

3

Seekord

● P2P omadused● P2P mudelid

– Centralized Directory Model– Flooded Requests Model– Document Routing Model

● Chord, CAN, Tapestry, Pastry

● Projektid (mida varem hakkad, seda kergem on sess!)

Page 4: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

4

Decentralization

Decentralization

Page 5: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

5

Decentralization

● Pros: Price, scalability, perfomance● Cons: Security, Joining the system

Page 6: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

6

Scalability

Decentralization

Scalability

● Synchronization of central services● Maintance of states● Programming model of computation

Page 7: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

7

Anonymity

Decentralization

Scalability

Anonymity

Page 8: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

8

Anonymity forms

● Author - dokumendi autorit ei saa määrata● Publisher - dokumendi avaldajat ei saa määrata● Reader - kasutajat, kes tõmbab dokumendi, ei

saa määrata● Server - dokumendi põhjal ei saa määrata

servereid, kus ta asub● Document – serverid ei tea, mis faile nad

hoiavad● Query – server ei tea, mis dokumenti ta

kasutab, kui vastab päringule

Page 9: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

9

Tehnikad

Page 10: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

10

Self-organization

Decentralization

Scalability

Anonymity

Self-organization

● OceanStore – routing● Pastry – failide replikad● FastTrack, Skype – super-nodes

Page 11: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

11

Cost of Ownership

Decentralization

Scalability

Anonymity

Self-organizationCost of ownership

Väga väike võrreldes klient-server rakendustega

Page 12: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

12

Ad-hoc Connectivity

Decentralization

Scalability

Anonymity

Self-organizationCost of ownership

Ad-hoc connectivity

Page 13: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

13

Ad-hoc Connectivity

● Ressursside pool P2P süsteemis on ebastabiilne

● Ligipääs failidele on ebastabiilne– SLA puhul – osa teenuspakkujast võib olla

maas● Koostöö süsteemid

– Mobiilsed seadised– Läbipaistev suhtlemine offline süsteemidega

(proxies, sender relays, ...)

Page 14: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

14

Perfomance

Decentralization

Scalability

Anonymity

Self-organizationCost of ownership

Ad-hoc connectivity Perfomance

Page 15: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

15

Perfomance

● Processing● Storage● Networking

Page 16: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

16

Perfomance

● Keskselt koordineeritud süsteemid– DNS

● Hajutatud süsteemid– Message forwarding– Võrgutraffic läheb suuremaks

Page 17: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

17

Perfomance

● Replication– Luuakse koopiad otsijale lähemale– Uuendusi on vaja propageerida (consistency)

● Caching– FreeNet'is kui fail on leitud ning tagastatud

soovijale, iga vahesõlm puhverdab tagastatud andmeid

Page 18: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

18

Perfomance

● Intelligent routing– On vaja aru saada kuidas sõlmed omavahel

suhtlevad (sotsioloogia vaatenurgast)– „Small-world phenomenon“ (Milgram 1967)– Sõlmed, millel on sarnased huvid, võiksid

olla seotud otseselt– Võrgukulud langevad, otsingu kiirus kasvab

Page 19: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

19

Security

Decentralization

Scalability

Anonymity

Self-organizationCost of ownership

Ad-hoc connectivity Perfomance

Security

Page 20: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

20

Security

● Multi-key encryption– Public key, multiple private keys

● Sandboxing– Koodi käivitamine sõlmes on ebaturvaline– On vaja tagada, et kood ei tee midagi halba– Virtuaalmasinad, proof-carrying code,

certifying compilers

Page 21: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

21

Security

● Digital Rights Management– On vaja tagada, et autorit saaks alati

määrata– Watermarking (steganogrpahy): faili

lisatakse signatuur● Reputation and Accountability

– On vaja määrata, kui „hea“ sõlm on– Jagad palju muusikat -> oled hea– Freeloader -> oled halb

Page 22: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

22

Security

● Firewalls– P2P vajab otseühendust sõlmede vahel (duh)– Inbound TCP on väga tihti blokeeritud– NAT – Kui mõlemad sõlmed on peidetud

NATi/firewalli taha, võib kasutada kolmanda sõlme

Page 23: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

23

Transparency

Decentralization

Scalability

Anonymity

Self-organizationCost of ownership

Ad-hoc connectivity Perfomance

Security Transparency

Page 24: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

24

Fault Resilience

Decentralization

Scalability

Anonymity

Self-organizationCost of ownership

Ad-hoc connectivity Perfomance

Security Transparency

Fault-resilience

Page 25: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

25

Fault-Resilience

● Central design point– Vältida central point of failure!

● Erisõlmed – relays– Groove

● Sõnumite järjekord

Page 26: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

26

Interoperability

Decentralization

Scalability

Anonymity

Self-organizationCost of ownership

Ad-hoc connectivity Perfomance

Security Transparency

Fault-resilience Interoperability

Page 27: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

27

Interoperability

● Peer-to-Peer Working Group (Internet2)– Not too active

● JXTA– Katse teha de facto standardit– Järgmise loengu teema– Hea baas projekti tegemiseks (olemas ka

C/C++ realisatsioon)!

Page 28: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

28

P2P Omadused

Decentralization

Scalability

Anonymity

Self-organizationCost of ownership

Ad-hoc connectivity Perfomance

Security Transparency

Fault-resilience Interoperability

:)

Page 29: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

29

P2P Mudelid

● Centralized Directory Model● Flooded Requests Model● Document Routing Model

Page 30: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

30

Centralized Directory

● Sõlmed avalikustavad infot enda kohta tsentraalses serveris

● Kui tuleb päring, server valib hulgast parima peer'i

● Mõned skaleeruvuse probleemid– Samas Napster'i näide näitab, et see ei ole

eriti suur probleem

Page 31: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

31

Flooded Requests

● Gnutella mudel● Võrgukoormus on väga suur

– Super-peer'id võivad aidata

Page 32: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

32

Document Routing

● FreeNet'i lähenemine

● Iga peer saab IDP

● Iga peer teab teatud hulk teisi peer'i● Dokumendi publitseerimisel saab dokument

samuti

IDD = h(sisu, nimi)

● Dokument on siis saadetud edasi kuni ta jõuab peer'ini, mille ID

P on ID

D'ga kõige sarnasem

Page 33: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

33

Document Routing

Page 34: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

34

Document Routing

● Otsimine– Päring läheb peer'ile kõige sarnasema ID'ga

kuni dokument on leitud– Dokument on transatud tagasi, iga

transaktsioonis osalev peer salvestab oma koopiat

● Problems– On vaja teada ID enne otsimist– Islanding problem (segmenteerimine)

Page 35: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

35

Document Routing

● Chord, CAN, Tapestry ja Pastry● Põhisiht – vähendada hop'ide arvu

otsimisel● Need algoritmid kas garanteerivad või

väidavad, et suure tõenäosusega otsing on O(log) keerukusega

Järgmised slaidid on võetud siit:

http://www.cs.bgu.ac.il/~ccsh032/

Page 36: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

36

CAN● CAN is Content-Addressable Network● Interface

– insert(key, value)– Value = retrieve(key)

● Properties– Scalable– Operationally simple– Good perfomance

Page 37: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

K V

CAN: basic idea

K V

K V

K V

K V

K V

K V

K V

K V

K V

K V

Page 38: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: basic idea

insert(K1,V1)

K V

K V

K V

K V

K V

K V

K V

K V

K V

K V

K V

Page 39: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: basic idea

insert(K1,V1)

K V

K V

K V

K V

K V

K V

K V

K V

K V

K V

K V

Page 40: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: basic idea(K1,V1)

K V

K VK V

K V

K V

K V

K V

K V

K V

K V

K V

Page 41: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: basic idea

retrieve (K1)

K V

K VK V

K V

K V

K V

K V

K V

K V

K V

K V

Page 42: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: solution• virtual Cartesian coordinate space

• entire space is partitioned amongst all the nodes – every node “owns” a zone in the overall space

• abstraction– can store data at “points” in the space – can route from one “point” to another

• point = node that owns the enclosing zone

Page 43: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: simple example

1

Page 44: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: simple example

1 2

Page 45: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: simple example

1

2

3

Page 46: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: simple example

1

2

3

4

Page 47: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: simple example

Page 48: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: simple example

I

Page 49: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: simple example

node I::insert(K,V) I

Page 50: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

(1) a = hx(K)

CAN: simple example

x = a

node I::insert(K,V) I

Page 51: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

(1) a = hx(K) b = hy(K)

CAN: simple example

x = a

y = b

node I::insert(K,V) I

Page 52: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

(1) a = hx(K) b = hy(K)

CAN: simple example

(2) route(K,V) -> (a,b)

node I::insert(K,V) I

Following the straight line path from the source to the destinantion

Page 53: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: simple example

(2) route(K,V) -> (a,b)

(3) (a,b) stores (K,V)

(K,V)

node I::insert(K,V) I(1) a = hx(K)

b = hy(K)

Page 54: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: simple example

(2) route “retrieve(K)” to (a,b) (K,V)

(1) a = hx(K) b = hy(K)

node J::retrieve(K)

J

Page 55: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Data stored in the CAN is addressed by name (i.e. key), not location (i.e. IP address)

CAN

Page 56: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: routing table

2d neighbors

Page 57: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: routing

(a,b)

(x,y) ?

Page 58: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

A node only maintains state for its immediate neighboring nodes

CAN: routing

Page 59: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: node insertion

Bootstrap node

1) Discover some node “I” already in CANnew node

Page 60: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: node insertion

I

new node 1) discover some node “I” already in CAN

Page 61: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: node insertion

2) pick random point in space

I

(p,q)

new node

Page 62: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: node insertion

(p,q)

3) I routes to (p,q), discovers node J

I

J

new node

Page 63: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: node insertion

newJ

4) split J’s zone in half… new owns one half

New node obtains routing from “J”

Periodic updates:send zone id toits neighbors

Page 64: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: node failures

• Need to repair the space

– Explicit hand over

– recover database• soft-state updates• use replication, rebuild database from replicas

– repair routing • takeover algorithm

Page 65: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: takeover algorithm

• Simple failures– know your neighbor’s neighbors– when a node fails, one of its neighbors takes over its zone

– Periodic update include: zone id + neighbors

– Absense: singals failure

– TAKEOVER message to all failed node neighbors and sets a takeover timer

– Receipt of TAKEOVER: compare volume and either cancel or reissue TAKEOVER message

Page 66: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: takeover algorithm

• More complex failure modes– simultaneous failure of multiple adjacent nodes – scoped flooding to discover neighbors– hopefully, a rare event

Page 67: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Only the failed node’s immediate neighbors are required for recovery

CAN: node failures

Page 68: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Design recap

• Basic CAN– completely distributed– self-organizing– nodes only maintain state for their immediate

neighbors

• Additional design features– multiple, independent spaces (realities)– background load balancing algorithm– simple heuristics to improve performance

Page 69: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Multi-Demensioned Spaces

• Increase the number of dimensions• Result: reduce path length

• A node NOW has more neighbors

Page 70: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Realities

• Multiple coordinate space• A node is assigned r coordinate zones• Content is replicated to all zones

• Result: can route to (x,y,z) on any reality and at each hop, can use different reality

• Each value is kept at r nodes and each node has r neighbor sets

Page 71: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Outline

• Introduction• Design• Evalution• Ongoing Work

Page 72: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Evaluation

• Scalability

• Low-latency

• Load balancing

• Robustness

Page 73: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: scalability• For a uniformly partitioned space with n nodes and d

dimensions – per node, number of neighbors is 2d– average routing path is (dn1/d)/4 hops– simulations show that the above results hold in practice

• Can scale the network without increasing per-node state

• Chord/Plaxton/Tapestry/Buzz– log(n) nbrs with log(n) hops

Page 74: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: low-latency

• Problem– latency stretch = (CAN routing delay)

(IP routing delay)– application-level routing may lead to high stretch

• Solution– increase dimensions– heuristics

• RTT-weighted routing• multiple nodes per zone (peer nodes)• deterministically replicate entries

Page 75: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Overloading Zones

• Multiple nodes per zone up to MAXPEERS

• Split zone: only if over MAXPEERS

• Each peer in zone knows all others in zone, but still keep one neighbor per zone.

• Periodically: requst list of peers from neighbor and select a new neighbor with best RTT

• Content: divided or replicated

Page 76: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: load balancing

• Two pieces

– Dealing with hot-spots• popular (key,value) pairs• nodes cache recently requested entries• overloaded node replicates popular entries at neighbors

– Uniform coordinate space partitioning• uniformly spread (key,value) entries• uniformly spread out routing load

Page 77: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Uniform Partitioning

• Added check – at join time, pick a zone– check neighboring zones– pick the largest zone and split that one

Page 78: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

0

20

40

60

80

100

Uniform Partitioning

V 2V 4V 8V

Volume

Percentage of nodes

w/o check

w/ check

V = total volumen

V16

V 8

V 4

V 2

65,000 nodes, 3 dimensions

Page 79: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

CAN: Robustness

• Completely distributed – no single point of failure

• Not exploring database recovery

• Resilience of routing– can route around trouble

Page 80: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Routing resilience

destination

source

Page 81: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Routing resilience

Page 82: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Routing resilience

destination

Page 83: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Routing resilience

Page 84: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

• Node X::route(D)

If (X cannot make progress to D) – check if any neighbor of X can make progress– if yes, forward message to one such nbr

Routing resilience

Page 85: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Routing resilience

Page 86: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

Inserting a new node affects only a single other node and its immediate neighbors or O(d) neighbors

CAN: node insertion

Page 87: P2P Tehnoloogiad -   · PDF file2 Eelmine kord Esimene tähtaeg – 02.10.2006 (aga mida varem, seda parem!) Servent – olem, mis saab nii teha päringut, kui ka vastata sellele

87

Lõpp

● Järgmine kord– JXTA

?