Download presentation
Presentation is loading. Please wait.
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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.