cs 347notes081 cs 347: parallel and distributed data management notes 08: p2p systems
DESCRIPTION
CS 347Notes083 Peer To Peer Systems Distributed application where nodes are: –Autonomous –Very loosely coupled –Equal in role or functionality –Share & exchange resources with each otherTRANSCRIPT
![Page 1: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/1.jpg)
CS 347 Notes08 1
CS 347: Parallel and Distributed
Data Management
Notes 08: P2P Systems
![Page 2: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/2.jpg)
CS 347 Notes08 2
![Page 3: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/3.jpg)
CS 347 Notes08 3
Peer To Peer Systems• Distributed application where nodes are:
– Autonomous– Very loosely coupled– Equal in role or functionality– Share & exchange
resources with each other
![Page 4: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/4.jpg)
CS 347 Notes08 4
Related Terms• File Sharing• Grid Computing• Autonomic
Computing
![Page 5: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/5.jpg)
CS 347 Notes08 5
Search in a P2P System
Resources:R1,1, R1,2, ...
Resources:R2,1, R2,2, ...
Resources:R3,1, R3,2, ... Query:
Who has X?
![Page 6: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/6.jpg)
CS 347 Notes08 6
Search in a P2P System
Resources:R1,1, R1,2, ...
Resources:R2,1, R2,2, ...
Resources:R3,1, R3,2, ... Query:
Who has X? answers
![Page 7: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/7.jpg)
CS 347 Notes08 7
Search in a P2P System
Resources:R1,1, R1,2, ...
Resources:R2,1, R2,2, ...
Resources:R3,1, R3,2, ... Query:
Who has X? answers
requestresource
receiveresource
![Page 8: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/8.jpg)
CS 347 Notes08 8
Distributed Lookup• Have <k, v> pairs• Given k, find matching values
1 a1 b
7 c
4 d1 a3 a
4 a
lookup(4) = {a, d}k v
![Page 9: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/9.jpg)
CS 347 Notes08 9
Data Distributed Over Nodes• N nodes• Each holds some <k,v> data
![Page 10: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/10.jpg)
CS 347 Notes08 10
Distributed Hashing• Chord• Replicated HT
Chord Paper:Ion Stoica, Robert Morris, David Liben-Nowell, David R. Karger, M. Frans Kaashoek, Frank Dabek, Hari Balakrishnan,Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications.IEEE/ACM Transactions on Networkinghttp://pdos.csail.mit.edu/chord/papers/paper-ton.pdf
![Page 11: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/11.jpg)
CS 347 Notes08 11
Hashing Values and Nodes• H(v) is m-bit number (v is value)• H(X) is m-bit number (X is node id)• Hash function is “good”
0 2m - 1
H(X) H(Y)
H(k)
k v stored at Y
![Page 12: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/12.jpg)
CS 347 Notes08 12
Chord Circle
N56
N51N48
N42
N38N32
N21
N14
N8
N1
K54
K38K24, K30
K10
m=6
![Page 13: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/13.jpg)
CS 347 Notes08 13
Rule• Consider nodes X, Y such that Y
follows X clockwise• Node Y is responsible for keys k such
that H(k) in ( H(X), H(Y) ]
N3N54
stores K55, K56, ... K3
use hashedvalues...e.g., N54 is nodewhose id hashesto 54.
![Page 14: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/14.jpg)
CS 347 Notes08 14
Succ, pred links
N56
N51N48
N42
N38N32
N21
N14
N8
N1
N1.succ
N1.pred m=6
![Page 15: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/15.jpg)
CS 347 Notes08 15
Search using succ links
N56
N51N48
N42
N38N32
N21
N14
N8
N1
N14.find_succ(K52)N51.find_succ(K52)
=N56
m=6
![Page 16: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/16.jpg)
CS 347 Notes08 16
Finger Table
N56
N51N48
N42
N38N32
N21
N14
N8
N1
N8+1 N14N8+2 N14N8+4 N14N8+8 N21N8+16 N32
finger table for N8
N8+32 N42
m=6
![Page 17: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/17.jpg)
CS 347 Notes08 17
Finger Table
N56
N51N48
N42
N38N32
N21
N14
N8
N1
N8+1 N14N8+2 N14N8+4 N14N8+8 N21N8+16 N32
finger table for N8
N8+32 N42
m=6
Node responsible forkey 8+32 = 40
![Page 18: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/18.jpg)
CS 347 Notes08 18
Example
N56
N51N48
N42
N38N32
N21
N14
N8
N1
find_succ(K54)
![Page 19: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/19.jpg)
CS 347 Notes08 19
Example
N56
N51N48
N42
N38N32
N21
N14
N8
N1
find_succ(K54)
![Page 20: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/20.jpg)
CS 347 Notes08 20
Example
N56
N51N48
N42
N38N32
N21
N14
N8
N1
find_succ(K54)K54
![Page 21: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/21.jpg)
CS 347 Notes08 21
Adding Nodes to Circle
N56
N51N48
N42
N38N32
N21
N14
N8
N1
K54
K38K24, K30
K10
N26joining node
for now,assume nodes
never die
need to1. update links2. move data
![Page 22: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/22.jpg)
CS 347 Notes08 22
Join Example
Np
Nx
Ns
![Page 23: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/23.jpg)
CS 347 Notes08 23
Join Example
Np
Nx
Ns
nil
after join:
![Page 24: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/24.jpg)
CS 347 Notes08 24
Join Example
Np
Nx
Ns
nil
after Nx.stabilize: Y= Np
![Page 25: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/25.jpg)
CS 347 Notes08 25
Join Example
Np
Nx
Ns
after Np.stabilize: Y= Nx
![Page 26: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/26.jpg)
CS 347 Notes08 26
Moving Data: When?
Np
Nx
Ns
keys in (Np, Ns]keys in (Np, Nx]
![Page 27: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/27.jpg)
CS 347 Notes08 27
Move Data After Ns.notify(Nx)
Np
Nx
Ns
nil
send all keys inrange (Np, Nx]when Ns.prev is updated...
![Page 28: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/28.jpg)
CS 347 Notes08 28
Lookup May be at Wrong Node!
Np
Nx
Ns
nil
resp. for (Nx, Ns]
resp. for (Np, Nx]
lookup for k in (Np, Nx]directed to Ns!
![Page 29: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/29.jpg)
CS 347 Notes08 29
Results for N Node System• With high probability, the number of
nodes that must be contacted to find a successor is O(log N)
• Although finger table contains room for m entries, only O(log N) need to be stored
• Experimental results show average lookup time is (log N)/2
![Page 30: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/30.jpg)
CS 347 Notes08 30
Node Failures
Np
Nx
Ns
k8 v8k9 v9
k7 v7data at Nx:
Nx dies!! - links screwed up - data lost
![Page 31: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/31.jpg)
CS 347 Notes08 31
Failure Example
Np
Nx
Ns
Initially...
Nx dies...
backup succ link (r=2)
![Page 32: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/32.jpg)
CS 347 Notes08 32
Failure Example
Np Ns
After Ns.check_pred
nil
![Page 33: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/33.jpg)
CS 347 Notes08 33
Failure Example
Np Ns
After Np discovers Nx down...
nil
![Page 34: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/34.jpg)
CS 347 Notes08 34
Failure Example
Np Ns
After stabilization...
![Page 35: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/35.jpg)
CS 347 Notes08 35
Protecting Against Data Loss• One idea: robust node (see notes on replicated data)
k8 v8k9 v9
k7 v7
node X.1
k8 v8k9 v9
k7 v7
node X.2
k8 v8k9 v9
k7 v7
node X.3
robust node X
backup protocols
takeover protocols
![Page 36: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/36.jpg)
CS 347 Notes08 36
Replicated Hash Table
hash node0 N01 N12 N23 N3
node N0
data forkeys thathash to 0
hash node0 N01 N12 N23 N3
node N1
data forkeys thathash to 1
hash node0 N01 N12 N23 N3
node N2
data forkeys thathash to 2
hash node0 N01 N12 N23 N3
node N3
data forkeys thathash to 3
![Page 37: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/37.jpg)
CS 347 Notes08 37
Node Joins
node N0
data forkeys thathash to 0,1
node N2
data forkeys thathash to 2,3
hash node0 N01 N02 N23 N2
hash node0 N01 N02 N23 N2
N0 overloaded, asks N1 for help...
![Page 38: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/38.jpg)
CS 347 Notes08 38
Node Joins
node N0
data forkeys thathash to 0,1
node N2
data forkeys thathash to 2,3
hash node0 N01 N02 N23 N2
hash node0 N01 N02 N23 N2
First, set up N1...
node N1hash node
0 N01 N02 N23 N2
![Page 39: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/39.jpg)
CS 347 Notes08 39
Node Joins
node N0
data forkeys thathash to 0,1
node N2
data forkeys thathash to 2,3
hash node0 N01 N02 N23 N2
hash node0 N01 N02 N23 N2
Copy data to N1...
node N1
data forkeys thathash to 1
hash node0 N01 N02 N23 N2
datacopy
![Page 40: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/40.jpg)
CS 347 Notes08 40
Node Joins
node N0
data forkeys thathash to 0,1
node N2
data forkeys thathash to 2,3
hash node0 N01 N02 N23 N2
hash node0 N01 N02 N23 N2
Change control...
node N1
data forkeys thathash to 1
hash node0 N01 N02 N23 N2
N1 N1
Which do we update first, N0 or N1??
![Page 41: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/41.jpg)
CS 347 Notes08 41
Node Joins
node N0
data forkeys thathash to 0
node N2
data forkeys thathash to 2,3
hash node0 N01 N02 N23 N2
hash node0 N01 N02 N23 N2
Drop data at N0...
node N1
data forkeys thathash to 1
hash node0 N01 N02 N23 N2
N1 N1
![Page 42: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/42.jpg)
CS 347 Notes08 42
Update Other Nodesnode N0
data forkeys thathash to 0,1
node N2
data forkeys thathash to 2,3
hash node0 N01 N02 N23 N2
hash node0 N01 N02 N23 N2
node N1
data forkeys thathash to 1
hash node0 N01 N02 N23 N2
N1 N1 N1
How do other nodes get updated?• Eagerly by N0?• Lazily by future lookups?
![Page 43: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/43.jpg)
CS 347 Notes08 43
What about inserts?node N0
data forkeys thathash to 0,1
node N2
data forkeys thathash to 2,3
hash node0 N01 N02 N23 N2
hash node0 N01 N02 N23 N2
node N1
data forkeys thathash to 1
hash node0 N01 N02 N23 N2
insert arrives at this point...• apply at N0 and then copy?• re-direct to N1?
datacopy
![Page 44: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/44.jpg)
CS 347 Notes08 44
Chord vs Replicated HT• Which code is simpler?• Lookups O(log N) vs O(1)• Impact of caching• Routing table: Log N vs N• Anonymity?• Bootstrapping
![Page 45: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/45.jpg)
CS 347 Notes08 45
Neighborhood Search (Gnutella)• Each node stores its own data
searches nearby nodes
key val
12 a
7 b
13 c
25 a
key val
47 f
12 d
51 x
9 y
key val
41 g
99 c
14 d
![Page 46: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/46.jpg)
CS 347 Notes08 46
Example
key val
12 a
7 b
13 c
25 a
key val
47 f
12 d
25 x
9 y
key val
41 g
13 c
14 d
key val
41 g
13 x
14 d
key val
41 g
13 c
14 d
key val
41 g
13 f
14 d
key val
13 f
12 c
key val
15 f
12 c
key val
13 d
12 c
key val
44 s
05 a
node N1
N1.DTlookup(13), TTL = 4
key val
13 t
01 d
![Page 47: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/47.jpg)
CS 347 Notes08 47
Example
key val
12 a
7 b
13 c
25 a
key val
47 f
12 d
25 x
9 y
key val
41 g
13 c
14 d
key val
41 g
13 x
14 d
key val
41 g
13 c
14 d
key val
41 g
13 f
14 d
key val
13 f
12 c
key val
15 f
12 c
key val
13 d
12 c
key val
44 s
05 a
node N1
N1.DTlookup(13), TTL = 4
key val
13 t
01 dttl=3
ttl=1
ttl=2
answer so far = {c, f, x}
![Page 48: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/48.jpg)
CS 347 Notes08 48
Example
key val
12 a
7 b
13 c
25 a
key val
47 f
12 d
25 x
9 y
key val
41 g
13 c
14 d
key val
41 g
13 x
14 d
key val
41 g
13 c
14 d
key val
41 g
13 f
14 d
key val
13 f
12 c
key val
15 f
12 c
key val
13 d
12 c
key val
44 s
05 a
node N1
N1.DTlookup(13), TTL = 4
key val
13 t
01 d
answer = {c, f, x, d} (no t!)
![Page 49: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/49.jpg)
CS 347 Notes08 49
Optimization• Queries have unique identifier• Nodes keep cache of recent queries
(query id plus TTL)
![Page 50: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/50.jpg)
CS 347 Notes08 50
Example
key val
12 a
7 b
13 c
25 a
key val
47 f
12 d
25 x
9 y
key val
41 g
13 c
14 d
key val
41 g
13 x
14 d
key val
41 g
13 c
14 d
key val
41 g
13 f
14 d
key val
13 f
12 c
key val
15 f
12 c
key val
13 d
12 c
key val
44 s
05 a
node N1
N1.DTlookup(13), TTL = 4, Qid=77
key val
13 t
01 dttl=3
ttl=1
ttl=2[77,4]
[77,1]
[77,2]
[77,3]
avoid Qid=77!
![Page 51: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/51.jpg)
CS 347 Notes08 51
Example
key val
12 a
7 b
13 c
25 a
key val
47 f
12 d
25 x
9 y
key val
41 g
13 c
14 d
key val
41 g
13 x
14 d
key val
41 g
13 c
14 d
key val
41 g
13 f
14 d
key val
13 f
12 c
key val
15 f
12 c
key val
13 d
12 c
key val
44 s
05 a
node N1
N1.DTlookup(13), TTL = 4, Qid=77
key val
13 t
01 d
[77,4]
[77,1]
[77,2]
[77,3]
avoid Qid=77!
ttl=3
ttl=1
ttl=2
ttl=2
![Page 52: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/52.jpg)
CS 347 Notes08 52
Bootstrap Server
known nodes:S =X1, X2, x3,...
server X5
X1
X2
X7get
neighbors
add to S
if no response,remove from S
sometimes called “pong server”
![Page 53: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/53.jpg)
CS 347 Notes08 53
Problems with Neighborhood Search• Unnecessary messages• High load and traffic
– Example: nodes have M new neighbors,number of messages is MTTL
• Low capacity nodes are a bottleneck• Do not find all answers
network areasearched
TTL
![Page 54: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/54.jpg)
CS 347 Notes08 54
Why is Neighborhood Search Good?• Can pose complex queries• Simple robust algorithm• Works well if data is highly replicated
network areasearched
TTL
sites that have latest Justin Bieber song
![Page 55: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/55.jpg)
CS 347 Notes08 55
Super-Nodes• Regular nodes index their content at
super-nodes• Super-nodes run neighborhood search
SN
SN
SN
SN
SN
SN
SN
SNSNSN
![Page 56: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/56.jpg)
CS 347 Notes08 56
Motivation for Super-Nodes• Take advantage of powerful nodes• Searching larger index better than
searching many smaller ones
SN
SN
SN
SN
SN
SN
SN
SNSNSN
![Page 57: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/57.jpg)
CS 347 Notes08 57
Open Problems
Performance
Correctness Participation
• Efficiency• Load-balancing
• Authentic Services• Prevention of DoS • Incentives
•Functionality•Applications•Anonymity
![Page 58: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/58.jpg)
CS 347 Notes08 58
Open Problems: “Bad Guys”• Availability (e.g., coping with DOS attacks)• Authenticity• Anonymity• Access Control (e.g., IP protection,
payments,...)
![Page 59: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/59.jpg)
CS 347 Notes08 59
Authenticity
title: origin of species
author: charles darwin
date: 1859
body: In an island far,far away ...
...
?
![Page 60: CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems](https://reader034.vdocuments.us/reader034/viewer/2022051104/5a4d1b6e7f8b9ab0599b42ef/html5/thumbnails/60.jpg)
CS 347 Notes08 60
Authenticity
title: origin of species
author: charles darwin
date: 1859
body: In an island far,far away ...
...
? 00