Peer-to-peer overlay networks Structured overlay network: Chord Basics Issue Large-scale distributed computer systems are spread across Each peer is assigned a unique m -bit identifier id . the Internet, yet their constituents need to communicate directly Every peer is assumed to store data contained in a file. with each other ) organize the system in an overlay network . Each file has a unique m -bit key k . Peer with smallest identifier id � k is responsible for Overlay network storing file with key k . Collection of peers , where each peer maintains a partial view succ ( k ) : The peer (i.e., node) with the smallest identifier of the system. View is nothing but a list of other peers with p � k . whom communication connections can be set up. Observation Note Partial views may change over time ) an ever-changing All arithmetic is done modulo M = 2 m . In other words, if overlay network. x = k · M + y , then x mod M = y . 21 / 53 22 / 53 Example Efficient lookups Partial view = finger table 0 31 1 30 2 29 3 Each node p maintains a finger table FT p [] with at most m 28 4 Peer�1�stores entries: 27 5 files�with�keys FT p [ i ] = succ ( p + 2 i � 1 ) 29,�30,�31,�0,�1 26 6 Note: FT p [ i ] points to the first node succeeding p by at 25 7 Peer�9�stores least 2 i � 1 . 24 8 files�with�keys 5,�6,�7,�8,�9 To look up a key k , node p forwards the request to node 23 9 Peer�20�stores with index j satisfying file�with�key�21 22 10 21 11 q = FT p [ j ] k < FT p [ j + 1 ] 20 12 19 13 If p < k < FT p [ 1 ] , the request is also forwarded to FT p [ 1 ] 18 14 17 15 16 23 / 53 24 / 53
Example finger tables Example lookup: 15@4 0 31 1 i-1 0 i succ(p�+�2����) 30 2 31 1 30 2 1 9 29 3 1 4 1 1 29 3 2 9 1 4 2 4 1 1 2 1 28 4 3 9 2 4 3 9 3 1 2 1 28 4 4 14 3 9 4 9 3 1 4 4 5 20 4 9 27 5 18 5 4 4 5 14 27 5 5 18 5 14 1 9 26 6 2 9 26 6 3 9 1 28 1 11 4 14 2 28 2 11 25 7 1 FT 4 [ 4 ] 15 < FT 4 [ 5 ] 5 20 3 28 3 14 25 7 4 1 4 18 ) 4 ! 14 5 9 5 28 24 8 24 8 1 14 1 11 2 p = 14 < 15 < FT p [ 1 ] 2 14 2 11 23 9 1 21 3 18 3 14 23 9 1 21 2 28 4 20 ) 14 ! 18 4 18 2 28 3 5 28 5 28 28 22 10 3 28 4 28 22 10 1 20 4 28 5 4 1 18 1 28 1 20 2 20 5 4 1 18 21 2 18 11 2 28 2 20 3 28 21 11 2 18 3 18 1 14 3 28 3 28 4 28 3 18 2 14 4 28 20 12 4 1 4 28 5 4 4 28 5 1 20 12 3 18 5 4 5 9 5 1 4 20 19 13 13 19 5 28 18 14 18 14 17 15 16 15 17 16 25 / 53 26 / 53 Example lookup: 22@4 Example lookup: 18@20 0 0 31 1 31 1 30 30 2 2 29 3 29 3 1 4 1 4 1 1 1 1 2 4 2 4 2 1 2 1 28 4 28 4 3 9 3 9 3 1 3 1 4 9 4 9 4 4 4 4 27 5 27 5 5 18 5 18 5 14 5 14 1 p = 20 ⌅ 18 < FT p [ 1 ] 1 9 1 9 6) 20 ! 21 26 6 26 6 2 9 1 FT 4 [ 5 ] 22 2 9 3 9 3 9 1 28 1 28 1 11 1 11 4 14 4 14 2 28 ) 4 ! 20 2 28 2 11 2 11 25 7 25 7 2 FT 20 [ 5 ] < 18 5 20 5 20 3 28 3 28 3 3 14 14 4 1 4 1 4 18 4 18 ) 20 ! 4 5 9 2 FT 20 [ 1 ] 22 < FT 20 [ 2 ] 5 9 5 28 5 28 24 8 24 8 1 14 1 14 ) 20 ! 21 2 14 2 14 3 FT 4 [ 4 ] 18 < FT 4 [ 5 ] 23 23 9 9 1 21 3 18 1 21 3 18 4 20 4 20 ) 4 ! 14 2 28 2 28 3 p = 21 < 22 < FT 21 [ 1 ] 3 28 5 28 3 28 5 28 22 10 22 10 4 28 4 28 1 20 ) 21 ! 28 1 20 5 4 1 18 5 4 1 18 4 p = 14 < 18 < FT p [ 1 ] 2 20 2 20 21 21 2 18 11 2 18 11 3 28 3 28 3 18 3 18 ) 14 ! 18 4 28 4 28 4 28 4 28 20 12 20 12 5 4 5 4 5 1 5 1 19 13 19 13 18 14 18 14 15 15 17 17 16 16 27 / 53 28 / 53
The Chord graph Chord: path lengths Essence Observation Each peer represented by a vertex; if FT p [ i ] = j , add arc h� ! With d n i , j i , 2 ( i , j ) = min {| i � j | , n � | i � j |} , we can see that every peer is joined with another peer at distance 1 2 n , 1 4 n , 1 but keep directed graph strict. 8 n ,..., 1. 1 7.5 4 Average�path�length 7.0 28 6.5 9 21 6.0 11 5.5 20 14 2 4 6 8 10 12 14 16 18 20 Network�size�(x�1000) 18 29 / 53 30 / 53 Chord: degree distribution Chord: clustering coefficient 0.12 600 3500 0.11 Occurrences 500 2500 0.10 1500 400 Occurrences 500 0.09 300 11 12 13 14 15 16 17 Outdegree 200 1 5 10 15 20 100 Note CC is computed over undirected Chord graph; x -axis shows 20 40 60 80 100 number of 1000 nodes. Indegree 31 / 53 32 / 53
Recommend
More recommend