+ All Categories
Home > Documents > Distributed Hash Tables

Distributed Hash Tables

Date post: 09-Feb-2016
Category:
Upload: torie
View: 52 times
Download: 0 times
Share this document with a friend
Description:
CS425 /CSE424/ECE428 – Distributed Systems – Fall 2011. Distributed Hash Tables. Material derived from slides by I. Gupta, M. Harandi , J. Hou , S. Mitra , K. Nahrstedt , N. Vaidya. Distributed System Organization. Centralized Ring Clique How well do these work with 1M+ nodes?. - PowerPoint PPT Presentation
Popular Tags:
28
Distributed Hash Tables CS425 /CSE424/ECE428 – Distributed Systems – Fall 2011 Material derived from slides by I. Gupta, M. Hara J. Hou, S. Mitra, K. Nahrstedt, N. Vaidya 2011-09-20 Nikita Borisov - UIUC 1
Transcript
Page 1: Distributed Hash Tables

Distributed Hash Tables

CS425 /CSE424/ECE428 – Distributed Systems – Fall 2011

Material derived from slides by I. Gupta, M. Harandi, J. Hou, S. Mitra, K. Nahrstedt, N. Vaidya

2011-09-20 Nikita Borisov - UIUC 1

Page 2: Distributed Hash Tables

Distributed System Organization Centralized Ring Clique How well do these

work with 1M+ nodes?

22011-09-20 Nikita Borisov - UIUC

Page 3: Distributed Hash Tables

Centralized

Problems? Leader a

bottleneck O(N) load on leader

Leader election expensive

32011-09-20 Nikita Borisov - UIUC

Page 4: Distributed Hash Tables

Ring

Problems? Fragile

O(1) failures tolerated

Slow communication O(N) messages

42011-09-20 Nikita Borisov - UIUC

Page 5: Distributed Hash Tables

Clique

Problems? High overhead

O(N) state at each node

O(N2) messages for failure detection

52011-09-20 Nikita Borisov - UIUC

Page 6: Distributed Hash Tables

Distributed Hash Tables

Middle point between ring and clique Scalable and fault-tolerant

Maintain O(log N) state Routing complexity O(log N) Tolerate O(N) failures

Other possibilities: State: O(1), routing: O(log N) State: O(log N), routing: O(log N / log log N) State: O(√N), routing: O(1)

62011-09-20 Nikita Borisov - UIUC

Page 7: Distributed Hash Tables

A hash table allows you to insert, lookup and delete objects with keys

A distributed hash table allows you to do the same in a distributed setting (objects=files)

DHT also sometimes called a key-value store when used within a cloud

Performance Concerns: Load balancing Fault-tolerance Efficiency of lookups and inserts

7

Distributed Hash Table

2011-09-20 Nikita Borisov - UIUC

Page 8: Distributed Hash Tables

Chord

Intelligent choice of neighbors to reduce latency and message cost of routing (lookups/inserts)

Uses Consistent Hashing on node’s (peer’s) address (ip_address,port) hashed id (m bits) Called peer id (number between 0 and ) Not unique but id conflicts very unlikely Can then map peers to one of logical points on a circle

8

m2

12 m

2011-09-20 Nikita Borisov - UIUC

Page 9: Distributed Hash Tables

Ring of peers

9

N80

N112

N96

N160Say m=7

N32

N45

6 nodes

2011-09-20 Nikita Borisov - UIUC

Page 10: Distributed Hash Tables

Peer pointers (1): successors

10

N80

0Say m=7

N32

N45

N112

N96

N16

(similarly predecessors)2011-09-20 Nikita Borisov - UIUC

Page 11: Distributed Hash Tables

Peer pointers (2): finger tables

11

N8080 + 20

80 + 2180 + 22

80 + 23

80 + 24

80 + 25 80 + 26

0Say m=7

N32

N45

ith entry at peer with id n is first peer with id >=

N112

N96

N16i ft[i]0 961 962 963 964 965 1126 16

Finger Table at N80

2011-09-20 Nikita Borisov - UIUC

Page 12: Distributed Hash Tables

Mapping Values

Key = hash(ident) m bit string

Value is stored at first peer with id greater than its key (mod 2m)

12

N80

0

N32

N45

Value with key K42 stored here

N112

N96

N16

2011-09-20 Nikita Borisov - UIUC

Page 13: Distributed Hash Tables

Search

13

N80

0Say m=7

N32

N45

File cnn.com/index.html with key K42 stored here

Who has cnn.com/index.html?(hashes to K42)

N112

N96

N16

2011-09-20 Nikita Borisov - UIUC

Page 14: Distributed Hash Tables

Search

14

N80

0Say m=7

N32

N45

File cnn.com/index.html with key K42 stored here

At node n, send query for key k to largest successor/finger entry <= kif none exist, send query to successor(n)

N112

N96

N16

Who has cnn.com/index.html?(hashes to K42)

2011-09-20 Nikita Borisov - UIUC

Page 15: Distributed Hash Tables

Search

15

N80

0Say m=7

N32

N45

File cnn.com/index.html with key K42 stored here

At node n, send query for key k to largest successor/finger entry <= kif none exist, send query to successor(n)

All “arrows” are RPCs

N112

N96

N16

Who has cnn.com/index.html?(hashes to K42)

2011-09-20 Nikita Borisov - UIUC

Page 16: Distributed Hash Tables

16

AnalysisSearch takes O(log(N)) time

Proof (intuition): at each step, distance between query and peer-

with-file reduces by a factor of at least 2 (why?)Takes at most m steps: is at most a constant multiplicative factor above N, lookup is O(log(N))

(intuition): after log(N) forwardings, distance to key is at most (why?)Number of node identifiers in a range of is O(log(N)) with high probability (why?)So using successors in that range will be ok

Nm /2Nm /2

m2

Here

Next hop

Key

2011-09-20 Nikita Borisov - UIUC

Page 17: Distributed Hash Tables

Analysis (contd.)

O(log(N)) search time holds for file insertions too (in general for routing to any key) “Routing” can thus be used as a building block for

▪ All operations: insert, lookup, delete O(log(N)) time true only if finger and successor

entries correct When might these entries be wrong?

When you have failures

172011-09-20 Nikita Borisov - UIUC

Page 18: Distributed Hash Tables

Search under peer failures

18

N80

0Say m=7

N32

N45

File cnn.com/index.html with key K42 stored here

XX

X

Lookup fails (N16 does not know N45)

N112

N96

N16

Who has cnn.com/index.html?(hashes to K42)

2011-09-20 Nikita Borisov - UIUC

Page 19: Distributed Hash Tables

Search under peer failures

19

N80

0Say m=7

N32

N45

File cnn.com/index.html with key K42 stored here

X

One solution: maintain r multiple successor entriesIn case of failure, use successor entries

N112

N96

N16

Who has cnn.com/index.html?(hashes to K42)

2011-09-20 Nikita Borisov - UIUC

Page 20: Distributed Hash Tables

Search under peer failures (2)

20

N80

0Say m=7

N32

N45

File cnn.com/index.html with key K42 stored here

XX

Lookup fails (N45 is dead)

N112

N96

N16

Who has cnn.com/index.html?(hashes to K42)

2011-09-20 Nikita Borisov - UIUC

Page 21: Distributed Hash Tables

21

Search under peer failures (2)

N80

0Say m=7

N32

N45

File cnn.com/index.html with key K42 stored here

X

One solution: replicate file/key at r successors and predecessors

N112

N96

N16

K42 replicated

K42 replicated

Who has cnn.com/index.html?(hashes to K42)

2011-09-20 Nikita Borisov - UIUC

Page 22: Distributed Hash Tables

Need to deal with dynamic changes

Peers fail New peers join Peers leave

P2P systems have a high rate of churn (node join, leave and failure)

Need to update successors and fingers, and copy keys

222011-09-20 Nikita Borisov - UIUC

Page 23: Distributed Hash Tables

23

New peers joining

N80

0Say m=7

N32

N45

N112

N96

N16

N40

Introducer directs N40 to N45 (and N32)N32 updates successor to N40N40 initializes successor to N45, and inits fingers from it

2011-09-20 Nikita Borisov - UIUC

Page 24: Distributed Hash Tables

24

New peers joining

N80

0Say m=7

N32

N45

N112

N96

N16

N40

Introducer directs N40 to N45 (and N32)N32 updates successor to N40N40 initializes successor to N45, and inits fingers from itN40 periodically talks to its neighbors to update finger table

Stabilization Protocol(to allow for“continuous”churn,multiplechanges)

2011-09-20 Nikita Borisov - UIUC

Page 25: Distributed Hash Tables

25

New peers joining (2)

N80

0Say m=7

N32

N45

N112

N96

N16

N40

N40 may need to copy some files/keys from N45(files with fileid between 32 and 40)

K34,K382011-09-20 Nikita Borisov - UIUC

Page 26: Distributed Hash Tables

Lookups

26

Aver

age

Mes

sage

s per

Loo

kup

Number of Nodeslog N, as expected

2011-09-20 Nikita Borisov - UIUC

Page 27: Distributed Hash Tables

Chord Protocol: Summary

O(log(N)) memory and lookup costs

Hashing to distribute filenames uniformly across key/address space

Allows dynamic addition/deletion of nodes

272011-09-20 Nikita Borisov - UIUC

Page 28: Distributed Hash Tables

DHT Deployment

Many DHT designs Chord, Pastry, Tapestry, Koorde, CAN,

Viceroy, Kelips, Kademlia, … Slow adoption in real world

Most real-world P2P systems unstructured▪ No guarantees▪ Controlled flooding for routing

Kademlia slowly made inroads, now used in many file sharing networks

282011-09-20 Nikita Borisov - UIUC


Recommended