270 likes | 428 Views
Tapestry: Finding Nearby Objects in Peer-to-Peer Networks. Joint with: Ling Huang Anthony Joseph Robert Krauthgamer John Kubiatowicz Satish Rao Sean Rhea Jeremy Stribling Ben Zhao. Object Location. Behind the Cloud. Why nearby? (DHT vs. DOLR).
E N D
Tapestry: Finding Nearby Objects in Peer-to-Peer Networks Joint with: Ling Huang Anthony Joseph Robert Krauthgamer John Kubiatowicz Satish Rao Sean Rhea Jeremy Stribling Ben Zhao
Why nearby?(DHT vs. DOLR) Nearby= low stretch, ratio of distance traveled to find object to distance to closest copy of object • Objects are services, so distance isn’t one-time cost (see COMPASS) • (smart) publishers put objects at chosen locations in network • Bob Miller places retreat schedule at node in Berkeley • Wildly popular objects
Outline • Low stretch dynamic peer-to-peer network • Tolerate failures in network • Adapting to network variation • Future work
Distributed Hash Tables • These systems give • Guaranteed location • Join and leave algorithms • Load-balanced storage • No stretch guarantees
Low Stretch Approaches • Not dynamic Tapestry is first dynamic low-stretch scheme
PRR/Tapestry Country State City
PRR/Tapestry Level 3 Level 2 Level 1 Two object types: red and blue, so two trees
Neighbor Table For “5471” (Octal) NodeID 5416 NodeID 5455 5470 540x 50xx 0xxx 5471 541x 51xx 1xxx 5472 542x 52xx 2xxx 3 3 5473 543x 53xx 3xxx Ø 544x 54xx 4xxx 3 5475 545x 55xx 5xxx NodeID 5432 NodeID 5471 2 Ø 546x 56xx 6xxx 5477 547x 57xx 7xxx 4 4 3 2 1 2 Routing Levels 2 NodeID 5470 NodeID 5061 Balancing Load 1 NodeID 5123
Big Challenge: Joining Nodes Theorem 1 [HKRZ02] When peer A is finished inserting, it knows about all relevant peers that have finished insertion.
Results • Correctness O(log n) insert & delete • Concurrent inserts in a lock-free fashion • Neighbor-search routine • Required to keep lowstretch • All low-stretch schemes do something like this • Zhao, Huang, Stribling, Rhea, Joseph & Kubiatowicz (JSAC) • This works! Implemented algorithms • Measured performance
Neighbor Search In growth-restricted networks (with no additional space!): Theorem 2 [HKRZ02] Can find nearest neighbor with high probability with O(log2 n) messages Theorem 3[HKMR04]Can find nearest neighbor, and messages is O(log n) with high probability
Outline • Low stretch dynamic peer-to-peer network • Tolerate failures in network • Adapting to network variation • Future work
Dealing with faults • Multiple paths • Castro et. al • One failure along path, path breaks • Wide path • Paths faulty at the same place to break • Exponential difference in width effect • “retrofit” Tapestry to do latter in slightly malicious networks Failed! Still good…
Effective even for small overhead Theorem 4In growth restricted spaces, can make probability of failed route less than 1/nc for width O(clog n) Hildrum & Kubiatowicz, DISC02
Outline • Low stretch dynamic peer-to-peer network • Tolerate failures in network • Adapting to Network Variation • Future work
Network not homogeneous • Previous schemes picked a digit size • How do we find a good one? • But what if there isn’t one? Nebraska San Francisco Paris
New Result • Pick digit size based on local measurements • Don’t need to guess • Vary digit size depending on location • No, it’s not obvious that this works, but it does! Hildrum, Krauthgamer & Kubiatowicz [SPAA04]: Dynamic, locally optimal low-stretch network
Conclusions and Future Work Conclusion • Low stretch object location is practical • System provably good [HKRZ02] • System built [ZHSJK] Open Questions • Do we need a DOLR? • Object placement schemes? Workload? • Examples where low stretch, load balance, and low storage not possible simultaneously • What is tradeoff between degree, stretch, load balance as function of graph? • Can we get best possible? Trade off smoothly?
Tapestry People • Ling Huang • Anthony Joseph • John Kubiatowicz • Sean Rhea • Jeremy Stribling • Ben Zhao • and…OceanStore group members