1 / 36

SkipNet

SkipNet. Christian Schmidt-Madsen, csm@itu.dk Peter Tiedemann, petert@itu.dk. Dual ID-space: Name ID Numeric ID (similar to Chord,Pastry etc). SkipNet structure overview. Node names are the reverse DNS name of the host (example: dk.itu.mycomputer)

raine
Télécharger la présentation

SkipNet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SkipNet Christian Schmidt-Madsen, csm@itu.dk Peter Tiedemann, petert@itu.dk

  2. Dual ID-space: Name ID Numeric ID (similar to Chord,Pastry etc) SkipNet structure overview • Node names are the reverse DNS name of the host • (example: dk.itu.mycomputer) • Name ID Objects are stored at the lexicographic predecessor node. • ( example: dk.itu.mycomputer/index.html will be stored at • dk.itu.mycomputer )* • Numeric ID objects are stored at the numerically closest node *: assuming ”/” is less than other symbols

  3. Deterministic: The SkipList datastructure Pointer at level h skips over 2h elements Probabilistic: Node at level h with probability 1/2h

  4. Problems with SkipList: • Efficient search only possible from head • Some nodes more likely to be in routing path SkipList -> SkipNet Basic principle of SkipNet: • A probalistic skiplist where every node is a head. • The keys are just the names of the nodes • The ordering is lexicographic

  5. SkipNet structure illustrated Ring 100 Ring 101 Ring 110 Ring 111 Ring 000 Ring 001 Ring 010 Ring 011 O M D A T Z V X M O D Ring 01 Ring 00 Ring 10 Ring 11 A T V Z X M O D Ring 1 Ring 0 T A Z V X M D O T A Z V X L = 3 L = 2 Numeric ID of A L = 1 Root Ring Level: L = 0 :skiplist with head = A

  6. SkipNet Global View – Routing table M O D T A V X Z M D A T O V Z X M O D Node A’s Routing Table T A Z V X M D O T A Z V X Ring 100 Ring 101 Ring 110 Ring 111 Ring 000 Ring 001 Ring 010 Ring 011 L = 3 Ring 01 Ring 00 Ring 10 Ring 11 L = 2 Ring 1 Ring 0 L = 1 Root Ring Level: L = 0

  7. Routing by Name ID to node M O D T A V X Z M D A T O V Z X M O D T A Z V X M D O T A Z V X • Example: route from A to V • Simple Rule: Forward the message to node that is closest to dest, without going too far. Ring 100 Ring 101 Ring 110 Ring 111 Ring 000 Ring 001 Ring 010 Ring 011 L = 3 Ring 01 Ring 00 Ring 10 Ring 11 L = 2 Ring 1 Ring 0 L = 1 Root Ring Level: L = 0

  8. Routing by Name ID to node M O D T A V X Z M D A T O V Z X M O D Node T’s Routing Table T A Z V X M D O T A Z V X • Example: route from A to V • Simple Rule: Forward the message to node that is closest to dest, without going too far. Ring 100 Ring 101 Ring 110 Ring 111 Ring 000 Ring 001 Ring 010 Ring 011 L = 3 Ring 01 Ring 00 Ring 10 Ring 11 L = 2 Ring 1 Ring 0 L = 1 Root Ring Level: L = 0

  9. Routing by Name ID to node M O D T A V X Z M D A T O V Z X M O D T A Z V X M D O T A Z V X • Example: route from A to V • Simple Rule: Forward the message to node that is closest to dest, without going too far. Ring 100 Ring 101 Ring 110 Ring 111 Ring 001 Ring 010 Ring 011 Ring 000 L = 3 Ring 01 Ring 00 Ring 10 Ring 11 L = 2 Ring 1 Ring 0 L = 1 Root Ring Level: L = 0

  10. E O D T A V X Z E D A T O V Z X E O D T A Z V X E D O T A Z V X • Example: route from A to F -> Terminates at E • Simple Rule: Forward the message to node that is closest to dest, without going too far. Routing by Name ID to object Ring 100 Ring 101 Ring 110 Ring 111 Ring 001 Ring 010 Ring 011 Ring 000 L = 3 Ring 01 Ring 00 Ring 10 Ring 11 L = 2 Ring 1 Ring 0 L = 1 Root Ring Level: L = 0

  11. How fast is routing by name? In expectation a level h pointer will point past 2h nodes This enables us to at least half the distance on the root ring to the destination giving O(logn) steps Worst case is O(n) in the case were everybody else is on the same rings as us

  12. Node joins Join(node v) algorithm: Decide on a numeric ID(position in the SkipNet) either randomly or by hashing DNS name. Route to the top level ring for that numeric ID Find neighbors on level below Continue recursively until we reach the root ring Illustration on next slide ! 

  13. Node join illustrated Joining node Ring P1 Ring P0 Only a few in expectation Ring P

  14. Node departure Notifies neighbours of departure Node failure Leaf Set : Each node has L/2 pointers in each direction on the root ring, providing protection from independent failure. However the leaf set for a node are most likely close in the underlying network too!

  15. Background repair 1/2 Local ring repairs • Periodically contact neighbours in each ring and tell them that you think you are neighbors. • If neighbor accepts -> no response • else neighbour responds with neighbor • Reconcilliation based on this info( no details in article)

  16. Background repair 2/2 Upper ring repair • For each ring, route a message a short distance around the ring, checking encountered nodes against higher level pointers Ring Px This is closer than red node and in ring Px ! Ring P

  17. Routing by numeric ID RouteTo( numID ): • Current ring = root ring • Move around the current ring until you meet a node which is in the same next higher ring as numID • Continue recursively until a top ring is reached

  18. B O D T A V X B D A X O V X B O D T T A V D B O T A V X Example: route from A to 110 -> ends at node O • Log(N) rings to visit • In expectation only 2 nodes visited before encountering one belonging to correct ring Routing by numeric ID Ring 100 Ring 101 Ring 110 Ring 111 Ring 001 Ring 010 Ring 011 Ring 000 L = 3 Ring 01 Ring 00 Ring 10 Ring 11 L = 2 Ring 1 Ring 0 L = 1 Root Ring Level: L = 0

  19. com.microsoft.research Content and path locality microsoft.com/pwlist.txt • Organizations correspond to contiguous SkipNet segments • Internal routing by nameID remains internal • Objects are stored according to nameID com.microsoft com.sun gov.irs edu.ucb

  20. Numeric Routing Name Routing Constrained load balancing • DHT over a limited domain • We combine the two id spaces • Calling a file <CLB Domain>!<CLB Suffix> will store the file on the node beginning with <CLB Domain> and having the closest numeric ID to hash(<CLB Suffix>) CLB DomainCLB Suffix microsoft.com!skipnet.html

  21. skipnet. html CLB example • To get object “microsoft.com!skipnet.html” • Route by nameID to “microsoft.com” • Route by numericID to Hash(“skipnet.html”)within the “microsoft.com” constraint com.microsoft com.sun gov.irs edu.ucb

  22. CLB options For a domain DOM and an objectID OID three options for storing the object exists: • Controlled placement (no DHT): DOMOID(!) • Global DHT: !DOMOID • CLB: DOM!OID

  23. Organizational disconnect • Common failure • Forming an internal SkipNet • Re-joining the global SkipNet or, equivalently • Merge of two SkipNet segments

  24. Root ring connection

  25. Proximity-aware routing • Proximity-aware routing of nameId (P-table) Use slightly shorter or longer jumps than the ”normally”; distance at lvl h expected to be 2h • Proximity-aware routing of numericId (C-table) Use a scheme similar to Pastry, where the node with lowest latency is chosen as an entry in the C-table

  26. Modifying the routing table 1/2 Increase the base k of the numericID • Ring ”fanout” increases to k • Fewer pointers in R-table, O(logkn) • More routing hops, O(k logkn) Example: k = 3 h = 2 h = 1 h = 0

  27. Modifying the routing table 2/2 Store k-1 additional pointers in each direction at each level of the routing table • Increased complexity of join (2k-2 in each member ring) • Fewer routing hops

  28. Average number of unique routing entries per node in an overlay with 216 nodes.

  29. Discussion • DNS as the basis of nameIds (NAT’ed hosts) • Choice of numericId (random/secure hash) Variation: • Deterministic SkipNet (~ balanced tree)

  30. End of slide show, PgDn to continue

  31. Routing by nameID

  32. Routing by numericID

More Related