unicamp mc714
play

Unicamp MC714 Distributed Systems Slides by Maarten van Steen, - PowerPoint PPT Presentation

Unicamp MC714 Distributed Systems Slides by Maarten van Steen, adapted from Distributed Systems, 3rd edition Chapter 09: P2P Chord: Distributed hash tables Illustrative: Chord Consider the organization of many nodes into a logical ring Each


  1. Unicamp MC714 Distributed Systems Slides by Maarten van Steen, adapted from Distributed Systems, 3rd edition Chapter 09: P2P

  2. Chord: Distributed hash tables Illustrative: Chord Consider the organization of many nodes into a logical ring Each node is assigned a random m -bit identifier. Every entity is assigned a unique m -bit key. Entity with key k falls under jurisdiction of node with smallest id ≥ k (called its successor succ ( k ) ). Nonsolution Let each node keep track of its neighbor and start linear search along the ring. Notation We will speak of node p as the node have identifier p General mechanism 2 / 6

  3. Chord: Distributed hash tables Chord finger tables Principle Each node p maintains a finger table FT p [] with at most m entries: FT p [ i ] = succ ( p + 2 i − 1 ) Note: the i -th entry points to the first node succeeding p by at least 2 i − 1 . General mechanism 3 / 6

  4. Chord: Distributed hash tables Chord finger tables Principle Each node p maintains a finger table FT p [] with at most m entries: FT p [ i ] = succ ( p + 2 i − 1 ) Note: the i -th entry points to the first node succeeding p by at least 2 i − 1 . To look up a key k , node p forwards the request to node with index j satisfying q = FT p [ j ] ≤ k < FT p [ j + 1 ] General mechanism 3 / 6

  5. Chord: Distributed hash tables Chord finger tables Principle Each node p maintains a finger table FT p [] with at most m entries: FT p [ i ] = succ ( p + 2 i − 1 ) Note: the i -th entry points to the first node succeeding p by at least 2 i − 1 . To look up a key k , node p forwards the request to node with index j satisfying q = FT p [ j ] ≤ k < FT p [ j + 1 ] If p < k < FT p [ 1 ] , the request is also forwarded to FT p [ 1 ] General mechanism 3 / 6

  6. Chord: Distributed hash tables Chord lookup example Resolving key 26 from node 1 and key 12 from node 28 1 4 Finger table 2 4 succ(p + 2 ) 3 9 1 - i 4 9 5 18 Actual node 0 i 31 1 30 2 1 9 29 3 2 9 1 1 3 9 2 1 28 4 4 14 3 1 5 20 4 4 27 5 5 14 Resolve k = 12� from node 28 26 6 25 7 24 8 1 11 2 11 3 14 23 9 Resolve k = 26� 4 18 from node 1 5 28 22 10 1 28 2 28 21 11 1 14 3 28 2 14 4 1 20 3 18 12 5 9 4 20 19 13 5 28 1 21 18 14 2 28 15 17 16 3 28 1 18 4 28 2 18 5 4 1 20 3 18 2 20 4 28 3 28 5 1 4 28 5 4 General mechanism 4 / 6

  7. Chord: Distributed hash tables Chord in Python 1 class ChordNode: def finger(self , i): 2 succ = (self.nodeID + pow (2, i-1)) % self.MAXPROC # succ(p+2ˆ(i-1)) 3 lwbi = self.nodeSet.index(self.nodeID) # self in nodeset 4 upbi = (lwbi + 1) % len (self.nodeSet) # next neighbor 5 for k in range ( len (self.nodeSet )): # process segments 6 if self.inbetween(succ , self.nodeSet[lwbi]+1, self.nodeSet[upbi ]+1): 7 return self.nodeSet[upbi] # found successor 8 (lwbi ,upbi) = (upbi , (upbi +1) % len (self.nodeSet )) # next segment 9 10 def recomputeFingerTable(self): 11 self.FT[0] = self.nodeSet[self.nodeSet.index(self.nodeID )-1] # Pred. 12 self.FT[1:] = [self.finger(i) for i in range (1,self.nBits +1)] # Succ. 13 14 def localSuccNode(self , key): 15 if self.inbetween(key , self.FT[0]+1, self.nodeID +1): # in (FT[0],self] 16 # responsible node return self.nodeID 17 elif self.inbetween(key , self.nodeID+1, self.FT[1]): # in (self ,FT[1]] 18 # succ. responsible return self.FT[1] 19 for i in range (1, self.nBits +1): # rest of FT 20 if self.inbetween(key , self.FT[i], self.FT[(i+1) % self.nBits ]): 21 return self.FT[i] # in [FT[i],FT[i+1]) 22 General mechanism 5 / 6

  8. Chord: Distributed hash tables Exploiting network proximity Problem The logical organization of nodes in the overlay may lead to erratic message transfers in the underlying Internet: node p and node succ ( p + 1 ) may be very far apart. Solutions General mechanism 6 / 6

  9. Chord: Distributed hash tables Exploiting network proximity Problem The logical organization of nodes in the overlay may lead to erratic message transfers in the underlying Internet: node p and node succ ( p + 1 ) may be very far apart. Solutions Topology-aware node assignment: When assigning an ID to a node, make sure that nodes close in the ID space are also close in the network. Can be very difficult. General mechanism 6 / 6

  10. Chord: Distributed hash tables Exploiting network proximity Problem The logical organization of nodes in the overlay may lead to erratic message transfers in the underlying Internet: node p and node succ ( p + 1 ) may be very far apart. Solutions Topology-aware node assignment: When assigning an ID to a node, make sure that nodes close in the ID space are also close in the network. Can be very difficult. Proximity routing: Maintain more than one possible successor, and forward to the closest. Example: in Chord FT p [ i ] points to first node in INT = [ p + 2 i − 1 , p + 2 i − 1 ] . Node p can also store pointers to other nodes in INT . General mechanism 6 / 6

  11. Chord: Distributed hash tables Exploiting network proximity Problem The logical organization of nodes in the overlay may lead to erratic message transfers in the underlying Internet: node p and node succ ( p + 1 ) may be very far apart. Solutions Topology-aware node assignment: When assigning an ID to a node, make sure that nodes close in the ID space are also close in the network. Can be very difficult. Proximity routing: Maintain more than one possible successor, and forward to the closest. Example: in Chord FT p [ i ] points to first node in INT = [ p + 2 i − 1 , p + 2 i − 1 ] . Node p can also store pointers to other nodes in INT . Proximity neighbor selection: When there is a choice of selecting who your neighbor will be (not in Chord), pick the closest one. General mechanism 6 / 6

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend