Presentation is loading. Please wait.

Presentation is loading. Please wait.

SkipNet Christian Schmidt-Madsen, Peter Tiedemann,

Similar presentations


Presentation on theme: "SkipNet Christian Schmidt-Madsen, Peter Tiedemann,"— Presentation transcript:

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

2 SkipNet structure overview Dual ID-space: Name ID Numeric ID (similar to Chord,Pastry etc) 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 The SkipList datastructure Probabilistic: Deterministic: Node at level h with probability 1/2 h Pointer at level h skips over 2 h elements

4 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 Problems with SkipList: Efficient search only possible from head Some nodes more likely to be in routing path

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

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

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

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

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

10 Routing by Name ID to object Level: L = 0 L = 1 L = 2 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. Ring 00 Ring 01 Ring 10Ring 11 Ring 000 Ring 001 Ring 010 Ring 011 Ring 100 Ring 101 Ring 110 Ring 111 A Root Ring D E O V X Z Ring 0 A ETX Ring 1 D Z V O O Z AT E X D V A T E X D VZ O L = 3 T

11 How fast is routing by name? In expectation a level h pointer will point past 2 h 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 Ring P0 Ring P1 Ring P Only a few in expectation Joining node

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 Upper ring repair For each ring, route a message a short distance around the ring, checking encountered nodes against higher level pointers Background repair 2/2 Ring P Ring Px This is closer than red node and in ring Px !

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 Routing by numeric ID Level: L = 0 L = 1 L = 2 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 Ring 00 Ring 01 Ring 10Ring 11 Ring 000 Ring 001 Ring 010 Ring 011 Ring 100 Ring 101 Ring 110 Ring 111 A Root Ring D O T VX Ring 0 A B T Ring 1 D V O O A B X D V A T B X D V O L = 3 X T B

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

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

21 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 edu.ucb gov.irs com.microsoft skipnet. html com.sun

22 CLB options For a domain DOM and an objectID OID three options for storing the object exists: 1. Controlled placement (no DHT): DOMOID(!) 2. Global DHT: !DOMOID 3. 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

25 Root ring connection

26 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 2 h 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

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

28 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

29

30

31

32 ChordBasic SkipNetFull SkipNetPastry 16.341.7102.263.2 Average number of unique routing entries per node in an overlay with 2 16 nodes.

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

34 End of slide show, PgDn to continue

35 Routing by nameID

36 Routing by numericID


Download ppt "SkipNet Christian Schmidt-Madsen, Peter Tiedemann,"

Similar presentations


Ads by Google