p2p network structured networks: distributed hash...
TRANSCRIPT
![Page 1: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/1.jpg)
P2P NetworkStructured Networks:
Distributed Hash Tables
Pedro García López
Universitat Rovira I Virgili
![Page 2: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/2.jpg)
Index
• Introduction to DHT’s• Origins of structured overlays• Case studies
– Chord– Pastry – CAN
• Conclusions
![Page 3: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/3.jpg)
Introduction to DHT’s:locating contents
• Simple strategy: expanding ring search until content is found
• If r of N nodes have copy, the expected search cost is at least N / r, i.e., O(N)
• Need many copies to keep overhead small
Who has this paper?Who has
this paper?
I have itI have it
I have itI have it
![Page 4: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/4.jpg)
Directed Searches• Idea
– Assign particular nodes to hold particular content (or know where it is)
– When a node wants this content, go to the node that is supposes to hold it (or know where it is)
• Challenges– Avoid bottlenecks: distribute the
responsibilities “evenly” among the existing nodes
– Adaptation to nodes joining or leaving (or failing)
• Give responsibilities to joining nodes• Redistribute responsibilities from leaving
nodes
![Page 5: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/5.jpg)
Idea: Hash Tables
• A hash table associates data with keys– Key is hashed to find
bucket in hash table– Each bucket is
expected to hold #items/#buckets items
• In a Distributed Hash Table (DHT), nodes are the hash buckets– Key is hashed to find
responsible peer node– Data and load are
balanced across nodes
key pos
00
hash functionhash function
1122
N-1N-1
33...
xx
yy zz
lookup (key) → datainsert (key, data)lookuplookup (key) → datainsert (key, data)
““BeattlesBeattles”” 22
hash table
hash bucket
h(key)%Nh(key)%N
0
1
2
...
node
key poshash functionhash function
lookup (key) → datainsert (key, data)lookuplookup (key) → datainsert (key, data)
““BeattlesBeattles”” 22h(key)%Nh(key)%NN-1
![Page 6: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/6.jpg)
DHTs: Problems
•• Problem 1 (dynamicity):Problem 1 (dynamicity): adding or removing nodes– With hash mod N, virtually every key will change its
location!h(k) mod m ≠ h(k) mod (m+1) ≠ h(k) mod (m-1)
•• Solution:Solution: use consistent hashing– Define a fixed hash space– All hash values fall within that space and do not
depend on the number of peers (hash bucket) – Each key goes to peer closest to its ID in hash
space (according to some proximity metric)
![Page 7: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/7.jpg)
DHTs: Problems (cont’d)
•• Problem 2 (size):Problem 2 (size): all nodes must be known to insert or lookup data– Works with small and static server
populations•• Solution:Solution: each peer knows of only a
few “neighbors”– Messages are routed through neighbors via
multiple hops (overlay routing)
![Page 8: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/8.jpg)
What Makes a Good DHT Design• For each object, the node(s) responsible for that object
should be reachable via a “short” path (small diametersmall diameter)– The different DHTs differ fundamentally only in the routing
approach• The number of neighbors for each node should remain
“reasonable” (small degreesmall degree)• DHT routing mechanisms should be decentralized (no no
single point of failure or bottlenecksingle point of failure or bottleneck)• Should gracefully handle nodes joining and leavinggracefully handle nodes joining and leaving
– Repartition the affected keys over existing nodes– Reorganize the neighbor sets– Bootstrap mechanisms to connect new nodes into the DHT
• To achieve good performance, DHT must provide low low stretchstretch– Minimize ratio of DHT routing vs. unicast latency
![Page 9: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/9.jpg)
DHT Interface
• Minimal interface (data-centric)Lookup(keyLookup(key) ) →→ IP addressIP address
• Supports a wide range of applications, because few restrictions– Keys have no semantic meaning– Value is application dependent
• DHTs do notnot store the data– Data storage can be build on top of DHTs
Lookup(keyLookup(key) ) →→ datadataInsert(keyInsert(key, data), data)
![Page 10: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/10.jpg)
DHTs in Context
TransportTransport
DHTDHT
Reliable Block StorageReliable Block Storage
File SystemFile System
Communication
LookupRouting
StorageReplicationCaching
Retrieve and store filesMap files to blocks
CFS
DHash
Chord
TCP/IP
receivesend
lookup
load_blockstore_block
load_filestore_file
User ApplicationUser Application
![Page 11: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/11.jpg)
DHTs Support Many Applications
• File sharing [CFS, OceanStore, PAST, …]• Web cache [Squirrel, …]• Censor-resistant stores [Eternity, FreeNet, …]• Application-layer multicast [Narada, …]• Event notification [Scribe]• Naming systems [ChordDNS, INS, …]• Query and indexing [Kademlia, …]• Communication primitives [I3, …]• Backup store [HiveNet]• Web archive [Herodotus]
![Page 12: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/12.jpg)
Origins of Structured overlays
• Accessing Nearby Copies of Replicated Objects in a Distributed Environment“, by Greg Plaxton, Rajmohan Rajaraman, and Andrea Richa, at SPAA 1997
• The paper proposes an efficient search routine (similar to the evangelist papers). In particular search, insert, delete, storage costs are all logarithmic, the base of the logarithm is a parameter.
• Prefix routing, distance and coordinates !
• Theory paper
![Page 13: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/13.jpg)
Evolution
![Page 14: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/14.jpg)
Hypercubic topologies
• Hypercube: – Plaxton, Chord, Kademlia, Pastry, Tapestry
• Butterfly /Benes:– Viceroy, Mariposa
• De Bruijn Graph:– Koorde
• Skip List:– Skip Graph, SkipNet
• Pancake Graph• Cube Connected Cycles
![Page 15: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/15.jpg)
DHT Case Studies
• Case Studies– Chord– Pastry– CAN
• Questions– How is the hash space divided evenly among
nodes?– How do we locate a node?– How does we maintain routing tables? – How does we cope with (rapid) changes in
membership?
![Page 16: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/16.jpg)
Chord (MIT)• Circular m-bit ID space
for both keys and nodes• Node ID = SHA-1(IP
address)• Key ID = SHA-1(key)• A key is mapped to the
first node whose ID is equal to or follows the key ID– Each node is
responsible for O(K/N)keys
– O(K/N) keys move when a node joins or leaves
N1
N8
N14
N32
N21
N38
N42
N48
N51
N56
m=6m=6
K30
K24
K10
K38
K54
2m-1 0
![Page 17: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/17.jpg)
Chord State and Lookup (1)• Basic Chord: each
node knows only 2 other nodes on the ring– Successor– Predecessor (for
ring management)• Lookup is achieved by
forwarding requests around the ring through successor pointers– Requires O(N) hops
N1
N8
N32
N21
N38
N42
N48
N51
N56
m=6m=6
K54
2m-1 0
lookup(K54)
N14
![Page 18: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/18.jpg)
Chord State and Lookup (2)
• Each node knows mother nodes on the ring– Successors: finger i of
n points to node at n+2i (or successor)
– Predecessor (for ring management)
– O(log N) state per node• Lookup is achieved by
following closest preceding fingers, then successor– O(log N) hops
N1
N8
N32
N21
N14
N38
N42
N48
N51
N56
m=6m=6
K54
2m-1 0
N8+1N8+2N8+4N8+8N8+16N8+32
N14N14N14N21N32N42
Finger table
+32
+16 +8
+4
+2
+1lookup(K54)
![Page 19: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/19.jpg)
Chord Ring Management
• For correctness, Chord needs to maintain the following invariants– For every key k, succ(k) is responsible for k– Successor pointers are correctly maintained
• Finger table are not necessary for correctness– One can always default to successor-based
lookup– Finger table can be updated lazily
![Page 20: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/20.jpg)
Joining the Ring
• Three step process:– Initialize all fingers of new node– Update fingers of existing nodes– Transfer keys from successor to new node
![Page 21: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/21.jpg)
Joining the Ring — Step 1
• Initialize the new node finger table– Locate any node n in the ring– Ask n to lookup the peers at j+20, j+21, j+22…– Use results to populate finger table of j
![Page 22: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/22.jpg)
Joining the Ring — Step 2
N1
N8
N14
N32
N21
N38
N42
N48
N51
N56
m=6m=62m-1 0
N8+1N8+2N8+4N8+8N8+16N8+32
N14N14N14N21N32N42
+16
N28
N28
-16
12
6• Updating fingers of
existing nodes– New node j calls
update function on existing nodes that must point to j
• Nodes in the ranges[j-2i , pred(j)-2i+1]
– O(log N) nodes need to be updated
![Page 23: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/23.jpg)
Joining the Ring — Step 3
• Transfer key responsibility– Connect to successor– Copy keys from successor to new node– Update successor pointer and remove keys
• Only keys in the range are transferred
N32
N21
N28
K30 K24
N32
N21
N28
K24 K24
N32
N21
N28
K24
N32
N21
K24K30 K30 K30
![Page 24: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/24.jpg)
Stabilization
• Case 1: finger tables are reasonably fresh• Case 2: successor pointers are correct, not
fingers• Case 3: successor pointers are inaccurate or key
migration is incomplete — MUST BE AVOIDED!• Stabilization algorithm periodically verifies and
refreshes node pointers (including fingers)– Basic principle (at node n):
x = n.succ.predif x ∈ (n, n.succ)
n = n.succnotify n.succ
– Eventually stabilizes the system when no node joins or fails
N32
N21
N28
![Page 25: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/25.jpg)
Dealing With Failures• Failure of nodes might
cause incorrect lookup– N8 doesn’t know
correct successor, so lookup of K19 fails
• Solution: successor list– Each node n knows r
immediate successors– After failure, n knows
first live successor and updates successor list
– Correct successors guarantee correct lookups
N1
N32
N21
N8
N38
N42
N48
N51
N56
m=6m=62m-1 0
+16 +8
+4
+2
+1
N14
N18K19
lookup(K19) ?
![Page 26: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/26.jpg)
Chord and Network Topology
Nodes numerically-closeare not topologically-close(1M nodes = 10+ hops)
Nodes numerically-closeare not topologically-close(1M nodes = 10+ hops)
![Page 27: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/27.jpg)
Pastry (MSR)
• Circular m-bit ID space for both keys and nodes– Addresses in base 2b
with m / b digits
• Node ID = SHA-1(IP address)
• Key ID = SHA-1(key)• A key is mapped to the
node whose ID is numerically-closestthe key ID
N0002
N0201
N0322
N2001
N1113
N2120
N2222
N3001
N3033
N3200
m=8m=8
K1320
K1201
K0220
K2120
K3122
2m-1 0b=2b=2
![Page 28: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/28.jpg)
Pastry Lookup
• Prefix routing from A to B– At hth hop, arrive at node that shares prefix
with B of length at least h digits– Example: 5324 routes to 0629 via
5324 → 0748 → 0605 → 0620 → 0629– If there is no such node, forward message to
neighbor numerically-closer to destination (successor)5324 → 0748 → 0605 → 0609 → 0620 → 0629
– O(log2b N) hops
![Page 29: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/29.jpg)
Pastry State and Lookup• For each prefix, a node
knows some other node (if any) with same prefix and different next digit
• For instance, N0201N0201:NN--: N1???, N2???, N3???N1???, N2???, N3???N0N0: N00??, N01??, N03??N00??, N01??, N03??N02N02: N021?, N022?, N023?N021?, N022?, N023?N020N020: N0200, N0202, N0203N0200, N0202, N0203
• When multiple nodes, choose topologicallytopologically--closestclosest– Maintain good locality
properties (more on that later)
N0002
N0201
N0322
N2001
N1113
N2120
N2222
N3001
N3033
N3200
m=8m=82m-1 0b=2b=2
N0122
N0212N0221
N0233
Routingtable
K2120
lookup(K2120)
![Page 30: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/30.jpg)
Node ID 10233102Node ID 10233102Leaf setLeaf set
Routing TableRouting Table
Neighborhood setNeighborhood set
A Pastry Routing Table
000221210202212102 11 2230120322301203 3120320331203203
1130123311301233 1223020312230203 1302102213021022221003120310031203 1013210210132102 1032330210323302
3333
10222302102223021020023010200230 10211302102113021023032210230322 1023100010231000 10232121102321211023300110233001
1023312010233120102332321023323211
0022
1302102213021022 1020023010200230 1130123311301233 31301233313012330221210202212102 2230120322301203 3120320331203203 3321332133213321
1023303310233033 1023302110233021 1023312010233120 10233122102331221023300110233001 1023300010233000 1023323010233230 1023323210233232
< SMALLER< SMALLER LARGER >LARGER >
Contains thenodes that are
numericallyclosest to
local nodeMUST BE UP
TO DATE
b=2, so node IDis base 4 (16 bits)
m/b
row
s
Contains thenodes that are
closest tolocal node
according toproximity metric
2b-1 entries per row
Entries in the nth rowshare the first n digitswith current node[ common-prefix next-digit rest ]
nth digit of current node
Entries in the mth columnhave m as next digit
Entries with no suitablenode ID are left empty
b=2b=2m=16m=16
![Page 31: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/31.jpg)
Pastry and Network Topology
Expected node distanceincreases with rownumber in routing table
Expected node distanceincreases with rownumber in routing table
Smaller and smallernumerical jumpsBigger and biggertopological jumps
Smaller and smallernumerical jumpsBigger and biggertopological jumps
![Page 32: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/32.jpg)
X0629X
0629
X joinsX joins
Join message
Joining
A5324A
5324
X knows A(A is “close” to X)
X knows A(A is “close” to X)
C0605C
0605
D0620D
0620
B0748B
0748
Route message to node numericallyclosest to X’s ID
Route message to node numericallyclosest to X’s ID
A’s neighborhood set
D’s leaf set
A0 — ????B1 — 0???C2 — 06??D4 — 062?
0629’s routing table
![Page 33: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/33.jpg)
Locality
• The joining phase preserves the locality property– First: A must be near X– Entries in row zero of A’s routing table are close to A, A is
close to X ⇒ X0 can be A0
– The distance from B to nodes from B1 is much larger than distance from A to B (B is in A0) ⇒ B1 can be reasonable choice for X1, C2 for X2, etc.
– To avoid cascading errors, X requests the state from each of the node in its routing table and updates its own with any closer node
• This scheme works “pretty well” in practice– Minimize the distance of the next routing step with no
sense of global direction– Stretch around 2-3
![Page 34: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/34.jpg)
Node Departure
• Node is considered failed when its immediate neighbors in the node ID space cannot communicate with it– To replace a failed node in the leaf set, the node
contacts the live node with the largest index on the side of failed node, and asks for its leaf set
– To repair a failed routing table entry Rdl, node contacts
first the node referred to by another entry Ril, i≠d of the
same row, and ask for that node’s entry for Rdl
– If a member in the M table, is not responding, node asks other members for their M table, check the distance of each of the newly discovered nodes, and update its own M table
![Page 35: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/35.jpg)
11 21
2
3
1
4
3
2
CAN (Berkeley)
• Cartesian space (d-dimensional)– Space wraps up: d-
torus
• Incrementally split space between nodes that join
• Node (cell) responsible for key kis determined by hashing k for each dimension
d=2d=2
hx(k)
hy(k)
insert(k,data)insert(k,data)
retrieve(k)retrieve(k)
![Page 36: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/36.jpg)
CAN State and Lookup• A node A only maintains
state for its immediate neighbors (N, S, E, W)– 2d neighbors per node
• Messages are routed to neighbor that minimizes Cartesian distance– More dimensions means
faster the routing but also more state
– (dN1/d)/4 hops on average
• Multiple choices: we can route around failures
W
N
A
S
E
B
d=2d=2
![Page 37: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/37.jpg)
CAN Landmark Routing
• CAN nodes do not have a pre-defined ID• Nodes can be placed according to locality
– Use well known set of m landmarklandmark machines (e.g., root DNS servers)
– Each CAN node measures its RTT to each landmark– Orders the landmarks in order of increasing RTT: m!
possible orderings
• CAN construction– Place nodes with same ordering close together in the
CAN– To do so, partition the space into m! zones: m zones on
x, m-1 on y, etc.– A node interprets its ordering as the coordinate of its
zone
![Page 38: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/38.jpg)
CAN and Network Topology
Use m landmarksto split space inm! zones
Use m landmarksto split space inm! zones
A;C;B
B;A;CB;C;ABA;B;C
A
C
C;B
;A
C;A;B
Nodes get randomzone in their zoneNodes get randomzone in their zone
Topologically-closenodes tend to be inthe same zone
Topologically-closenodes tend to be inthe same zone
![Page 39: P2P Network Structured Networks: Distributed Hash Tablesdeim.urv.cat/~pedro.garcia/P2P/ppt/p2pstructured.pdf · Idea: Hash Tables • A hash table associates data with keys – Key](https://reader036.vdocument.in/reader036/viewer/2022062920/5f02db1a7e708231d406591f/html5/thumbnails/39.jpg)
Conclusion
• DHT is a simple, yet powerful abstraction– Building block of many distributed services (file systems,
application-layer multicast, distributed caches, etc.)
• Many DHT designs, with various pros and cons– Balance between state (degree), speed of lookup
(diameter), and ease of management
• System must support rapid changes in membership– Dealing with joins/leaves/failures is not trivial– Dynamics of P2P network is difficult to analyze
• Many open issues worth exploring