Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications Stoica et al. Presented by Tam Chantem March 30, 2007.

Similar presentations


Presentation on theme: "Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications Stoica et al. Presented by Tam Chantem March 30, 2007."— Presentation transcript:

1 Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications Stoica et al. Presented by Tam Chantem March 30, 2007

2 03/30/07Chord: Stoica et al.2 Outline Problem Approach Results Conclusion

3 03/30/07Chord: Stoica et al.3 Peer-to-Peer Applications More and more popular Decentralized Information is everywhere

4 03/30/07Chord: Stoica et al.4 Peer-to-Peer Applications More and more popular Decentralized Information is everywhere –How to find data?

5 03/30/07Chord: Stoica et al.5 Peer-to-Peer Applications More and more popular Decentralized Information is everywhere –How to find data? –As nodes come and go…

6 03/30/07Chord: Stoica et al.6 Some Solutions Exhaustive search Centralized directory servers

7 03/30/07Chord: Stoica et al.7 Some Solutions Exhaustive search Centralized directory servers Not Scalable

8 03/30/07Chord: Stoica et al.8 Some Solutions Exhaustive search Centralized directory servers Partial search Caching Not Scalable

9 03/30/07Chord: Stoica et al.9 Some Solutions Exhaustive search Centralized directory servers Partial search Caching Not Scalable False negative, Inconsistency

10 03/30/07Chord: Stoica et al.10 Chord Distributed hash table across nodes Given a key, map key to node storing the data Flat naming for keys and nodes

11 03/30/07Chord: Stoica et al.11 Using Chord Application A Chord 1. Lookup(key)2. IP = 292.164.2.3 3. Contact 292.164.2.3 Node i

12 03/30/07Chord: Stoica et al.12 Hashing in Chord Consistent hash function: m-bit IDs –Hash key  key ID –Hash node’s IP address  node ID Use hashing to map key ID to node ID

13 03/30/07Chord: Stoica et al.13 Chord Ring Organize nodes based on their ID N8 N14 N32 N38 N42 N56

14 03/30/07Chord: Stoica et al.14 Key Mapping Key k  First node n, n’s ID  k Balance load with high probability

15 03/30/07Chord: Stoica et al.15 Key Mapping Example N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30

16 03/30/07Chord: Stoica et al.16 Key Location Linear time if nodes keep track of one successor Keep track of more successors to get logarithmic time –m successors if ID is m-bit long Use finger table

17 03/30/07Chord: Stoica et al.17 Finger Table Want to reduce distance from node that makes query to target node by half each time The i th entry of the table of n is node that succeeds n by at least 2i-1 nodes finger[i] = successor(n + 2 i-1 ) % m

18 03/30/07Chord: Stoica et al.18 Constructing a Finger Table We don’t know whether a node exists

19 03/30/07Chord: Stoica et al.19 Constructing a Finger Table We don’t know whether a node exists So to fill an entry: –Compute: key = successor(n + 2 i-1 ) % m –Do lookup(key) –Fill entry with the node that has key

20 03/30/07Chord: Stoica et al.20 Constructing a Finger Table We don’t know whether a node exists So to fill an entry: –Compute: key = successor(n + 2 i-1 ) % m –Do lookup(key) –Fill entry with the node that has key Also keep track of predecessor

21 03/30/07Chord: Stoica et al.21 Locating a Key Go to largest node that precedes key N8 + 1N14 N8 + 2N14 N8 + 4N14 N8 + 8N32 N8 + 16N32 N8 + 32N42

22 03/30/07Chord: Stoica et al.22 Looking up K54 by N8 N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30

23 03/30/07Chord: Stoica et al.23 Looking up K54 by N8 N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30

24 03/30/07Chord: Stoica et al.24 Looking up K54 by N8 N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30

25 03/30/07Chord: Stoica et al.25 Accounting for Volatility Node relies on successor(s) for correctness How can we ensure this when nodes leave/join the network?

26 03/30/07Chord: Stoica et al.26 Key Remapping N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30

27 03/30/07Chord: Stoica et al.27 Key Remapping N8 N14 N32 N42 N56 K54 K38 K10 K24 K30 N38

28 03/30/07Chord: Stoica et al.28 Key Remapping N8 N14 N32 N38 N42 N56 K54 K10 K24 K30

29 03/30/07Chord: Stoica et al.29 Joining N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30 New Node

30 03/30/07Chord: Stoica et al.30 Joining N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30 New Node Requests

31 03/30/07Chord: Stoica et al.31 Joining N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30 New Node Successor info

32 03/30/07Chord: Stoica et al.32 Joining N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30 N26

33 03/30/07Chord: Stoica et al.33 Joining N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30 N26

34 03/30/07Chord: Stoica et al.34 Periodic Stabilizing N8 N14 N32 N38 N42 N56 K54 K38 K10 K30 N26 predecessor? K24

35 03/30/07Chord: Stoica et al.35 Periodic Stabilizing N8 N14 N32 N38 N42 N56 K54 K38 K10 K30 N26 K24

36 03/30/07Chord: Stoica et al.36 Periodic Stabilizing N8 N14 N32 N38 N42 N56 K54 K38 K10 K24 K30 N26

37 03/30/07Chord: Stoica et al.37 Hard Cases Data may not be found while pointers are being moved In reality, may not have time for stabilization

38 03/30/07Chord: Stoica et al.38 Performance Good load balancing Logarithmic path length for lookups ~0.15% of lookups fail –When join/leave rate is 0.40 per second –Ask incorrect successor

39 03/30/07Chord: Stoica et al.39 Chord Locate distributed data based on key Features: –Load balancing –High availability –Scalability

40 03/30/07Chord: Stoica et al.40 Discussion Strengths and weaknesses of Chord? How can we improve Chord? Chord instead of DNS?


Download ppt "Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications Stoica et al. Presented by Tam Chantem March 30, 2007."

Similar presentations


Ads by Google