Download presentation
Presentation is loading. Please wait.
Published byGodfrey Lucas Modified over 8 years ago
1
1 More on Plaxton routing There are n nodes, and log B n digits in the id, where B = 2 b The neighbor table of each node consists of - primary neighbors (log n)/b per level, I.e. O(log n) - secondary neighbors O(log n) - reverse neighborsO(log n) expected and O(log 2 n) w.h.p (proof appears in the technical report by the authors) -In addition, each node contains a pointer list size of the pointer list = O(log 2 n) w.h.p. So, total auxiliary memory per node = O(log 2 n) w.h.p
2
2 Tapestry
3
3 History Tapestry: A Resilient Global-scale Overlay for Service Deployment Ben Y. Zhao, Ling Huang, Jeremy Stribling, Sean C. Rhea, Anthony D Joseph, and John Kubiatowicz: IEEE Journal on Selected Areas in Communications, January 2004, A self-organizing robust scalable wire-area infrastructure for efficient location and delivery of contents in presence of heavy load and node or link failure. It is the backbone of the Oceanstore, a persistent wide-area storage system.
4
4 Plaxton vs. Tapestry Basic idea similar to that proposed in Plaxton’s paper However, Tapestry provides innovative solutions to some of the bottlenecks of classical Plaxton routing. What are the limitations of Plaxton routing? -Need for global knowledge to construct neighbor table -Static architecture - no provision for node addition or deletion -Single root is a bottleneck is a single point of failure
5
5 Routing and Location Namespace (both nodes and objects) 160 bits using the hash function SHA-1 Each object has its own hierarchy rooted at Root f (ObjectID) = RootID, via a dynamic mapping function (in Plaxton’s scheme it was static) Suffix routing from A to B At h th hop, arrive at nearest node N h that shares suffix with B of length h digits –Example: 5324 routes to 0629 via 5324 --> 2349 --> 1429 --> 7629 --> 0629
6
6 Choosing root in Plaxton Given the object ID N i –Find set S of nodes in existing network nodes n matching most # of suffix digits with N i –Choose the root S i = node in S with highest valued ID Issues –Mapping must be generated statically using global knowledge –Must be kept as hard state immune to changing environment –Mapping is not well distributed, many nodes in the network are not chosen as roots
7
7 Choosing Root in Tapestry Given the object ID N i –Attempt to route to node ID N i (without knowing if it exists). –If it exists, then it becomes the root. But otherwise –Whenever null entry encountered, choose the next “higher” non-null pointer entry (thus, if XX53 does not exist, try xx63) –If current node S is only non-null pointer in rest of map, terminate route, and choose root(N i ) = S
8
8 More on Tapestry Return location of all replicas (instead of only the closest replica), and allow the application to choose a replica (mostly the first one received) “Hot Spot” detector Backpointers
9
9 4 2 3 3 3 2 2 1 2 4 1 2 3 3 1 3 4 1 1 43 2 4 Tapestry Mesh Incremental suffix-based routing (slide borrowed from the original authors) NodeID 0x43FE NodeID 0x13FE NodeID 0xABFE NodeID 0x1290 NodeID 0x239E NodeID 0x73FE NodeID 0x423E NodeID 0x79FE NodeID 0x23FE NodeID 0x73FF NodeID 0x555E NodeID 0x035E NodeID 0x44FE NodeID 0x9990 NodeID 0xF990 NodeID 0x993E NodeID 0x04FE NodeID 0x43FE
10
10 Fault-tolerant Routing Strategy –Detect failures via soft-state probe packets –Route around problematic hop via backup pointers Handling –3 forward pointers per outgoing route (2 backups) –Upgrade backup pointers and replace
11
11 Fault detection Soft-state vs. explicit fault-recovery - Soft-state periodic republish is more attractive –Expected additional traffic for periodic republish is low Redundant roots for better resilience –Object names hashed w/ small salts i.e. multiple names/roots –Queries and publishing utilize all roots in parallel
12
12 Dynamic Insertion of N Step 1: Build up N’s routing maps –Send messages to each hop along path from gateway to current node N –The i th hop along the path sends its i th level route table to N – N optimizes those tables where necessary Step 2: Move appropriate data from N’ to N Step 3: Use back pointers from N’ to find nodes which have null entries for N’s ID, tell them to add new entry to N Step 4: Notify local neighbors to modify paths to route through N where appropriate
13
13 Dynamic Insertion Example borrowed from the original slides NodeID 0x243FE NodeID 0x913FE NodeID 0x0ABFE NodeID 0x71290 NodeID 0x5239E NodeID 0x973FE NEW 0x143FE NodeID 0x779FE NodeID 0xA23FE Gateway 0xD73FF NodeID 0xB555E NodeID 0xC035E NodeID 0x244FE NodeID 0x09990 NodeID 0x4F990 NodeID 0x6993E NodeID 0x704FE 4 2 3 3 3 2 1 2 4 1 2 3 3 1 3 4 1 1 43 2 4 NodeID 0x243FE
14
14 Neighbor map of 5642 Level i matches i suffix entries. Number of entries per level = ID base (here it is 8) Each entry is the suffix matching node with least cost. If no such entry exists, then pick the one that with highest id & largest suffix match These are all primary entries y2y2’ L0L1 L2 L3
15
15 Benefits and limitations +F ault handling using redundant routes 1234 1238 1278 1678 5678 3128 --> 3178 --> 3678 +Scalable All routing done using locally available data + Optimal routing distance
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.