Presentation is loading. Please wait.

Presentation is loading. Please wait.

Distributed Object Location in a Dynamic Network Kirsten Hildrum, John D. Kubiatowicz, Satish Rao and Ben Y. Zhao.

Similar presentations


Presentation on theme: "Distributed Object Location in a Dynamic Network Kirsten Hildrum, John D. Kubiatowicz, Satish Rao and Ben Y. Zhao."— Presentation transcript:

1 Distributed Object Location in a Dynamic Network Kirsten Hildrum, John D. Kubiatowicz, Satish Rao and Ben Y. Zhao

2 DOLR (Decentralized Object Location and Routing) Object Object 1

3 Requirements Deterministic location Routing locality – routes should have low stretch Minimal storage and computational load Dynamic membership

4 SystemStretchStorageNode Insertion Metric PRR, 1997O(1)O(log n)--Special PRR + thisO(1)O(log n)O(log 2 n)Special Tapestry, 2000 Low in practice O(log n)--General Tapestry + this Low in practice O(log n)O(log 2 n)General Main Results

5 Additional Results Handle deletes Simultaneous insertions Algorithm with polylog stretch for general metrics. –Similar to Bourgain’s use of subsets to embed a general metric into L 2

6 Outline Background and previous work –PRR/Tapestry Insertion –Maintaining deterministic location – Low stretch: A nearest neighbor algorithm Related Work Conclusion

7 Neighbor Map For “2175” (Octal) Routing Levels 1234 1xxx 2175 0xxx 3xxx 4xxx 5xxx 6xxx 7xxx 20xx 2175 22xx 23xx 24xx 25xx 26xx 27xx 210x 211x 212x 213x 214x 215x 216x 2175 2170 2171 2172 2173 Ø 2175 Ø 2177 Neighbor Table 1 NodeID 2245 3 3 2 2 2 4 3 NodeID 2175 NodeID 2158 NodeID 2421 NodeID 2543 NodeID 2163 NodeID 2170

8 4 2 3 2 3 2 2 1 2 4 1 2 3 3 3 3 4 1 1 43 2 4 NodeID 0xEF34 NodeID 2170 NodeID 2105 NodeID 0732 NodeID 0x2345 NodeID 2173 NodeID E324 NodeID 2143 NodeID 2172 NodeID 3456 NodeID 2056 NodeID 2732 NodeID 2163 NodeID 0777 NodeID 0775 NodeID 2234 NodeID 2161 NodeID 2175 Basic Tapestry Mesh (from PRR97)

9 Use of Mesh for Object Location

10 Surrogate Routing Neighbor table will have holes Must be able to find unique root for every object Our solution: try next highest. –For 2176, try 2177 –For 213? Try 214? Need: all Ø really are Ø -> root unique. Neighbor Map For “2175” (Octal) Routing Levels 1234 1xxx 2175 0xxx 3xxx 4xxx 5xxx 6xxx 7xxx 20xx 2175 22xx 23xx 24xx 25xx 26xx 27xx 210x 211x 212x Ø 214x 215x 216x 2175 2170 2171 2172 2173 Ø 2175 Ø 2177

11 Outline Again

12 Neighbor Map For “2175” (Octal) Routing Levels 1234 1xxx 2175 0xxx 3xxx 4xxx 5xxx 6xxx 7xxx 20xx 2175 22xx 23xx 24xx 25xx 26xx 27xx 210x 211x 212x 213x 214x 215x 216x 2175 2170 2171 2172 2173 Ø 2175 Ø 2177 Insertion Build own neighbor table –Want: Closest for each entry (note: cannot copy from nearby node) Has to add self to other tables –Fill in holes –May replace further node 1

13 Finding the Closest Node Building table means finding nearest neighbor for each entry. Our algorithm: find nearest level-i node for every i in process of finding overall nearest Easily extend to find other entries

14 Network Assumption Nearest neighbor is hard in general metric Assume the following: –Ball of radius 2r contains only a factor of c more nodes than ball of radius r. –Also, b > c 2 –[Both assumed by PRR] Start knowing one node; allow distance queries

15 Algorithm Idea Call a node a level i node if it matches the new node in i digits. The whole network is contained in forest of trees rooted at highest possible i max. Let list[i max ] contain the root of all trees. Then, starting at i max, while i > 1 –list[i-1] = getChildren(list[i]) Certainly, list[i] contains level i neighbors.

16 NodeID 0xEF34 NodeID 0xEF31 NodeID 0xEFBA NodeID 0x0921 NodeID 0xE932 NodeID 0xEF37 NodeID 0xE324 NodeID 0xEF97 NodeID 0xEF32 NodeID 0xFF37 NodeID 0xE555 NodeID 0xE530 NodeID 0xEF44 NodeID 0x0999 NodeID 0x099F NodeID 0xE399 NodeID 0xEF40 4 4 4 1 1 1 1 2 2 2 2 2 3 3 3 3 NodeID 0xEF34 We Reach The Whole Network

17 The Real Algorithm Simplified version ALL nodes in the network. But far away nodes are not likely to have close descendents  Trim the list at each step. New version: while i > 1 –List[i-1] = getChildren(list[i]) –Trim(list[i-1])

18 How to Trim Consider circle of radius r with at least one level i node. Level-(i-1) node in little circle must must point to a level-i node in the big circle Want: list[i] had radius three times list[i-1] and list[i –1] contains one level i <2r r

19 Animation new

20 True in Expectation Want: list[i] had radius three times list[i- 1] and list[i –1] contains one level i Suppose list[i-1] has k elements and radius r –Expect ball of radius 4r to contain kc 2 /b –Ball of radius 3r contains less than k nodes, so keeping k all along is enough. To work with high probability, k = O(log n)

21 Steps of Insertion Find node with closest matching ID (surrogate) and get preliminary neighbor table –If surrogate’s table is hole-free, so is this one. Find all nodes that need to put new node in routing table via multicast Optimize neighbor table –w.h.p. contacted nodes in building table only ones that need to update their own tables Need: No fillable holes. Keep objects reachable

22 Need-to-know = a node with a hole in neighbor table filled by new node If 1234 is new node, and no 123s existed, must notify 12?? Nodes Acknowledged multicast to all matching nodes Need-to-know nodes

23 Locates & Contacts all nodes with a given prefix Create a tree based on IDs as we go Nodes send acks when all children reached Starting node knows when all nodes reached 54345 54340 The node then sends to any 5430?, any 5431?, any 5434?, etc. if possible 543?? 5431? 5434? Acknowledged Multicast Algorithm

24 Outline Again

25 Related Work Many peer-to-peer systems –Not locality-aware Chord Stoica, Morris, Karger, Kaashoek, Balakrishnan CAN Ratnasamy, Francis, Handley, Karp, Shenker Pastry Rowstron and Druschel –Polylog stretch, general metric Awerbuch and Peleg 1991 (not dynamic) Rajaraman, Richa, Vöcking, Vuppuluri 2001 –Constant stretch, special metric Plaxton, Rajaraman, Richa 1997 (not dynamic) Nearest Neighbor –Karger and Ruhl’s 2002 –Thorup and Zwick 2001 –Clarkson 1997

26 Future Work Getting stretch is low in practical systems –Transit stub networks –Network structure inside stub Periodic optimization Better handling of inserts in presence of deletes

27 Extra/Backup Slides

28 SystemNode Insertion StretchHopsMetric CAN, 2001O(r)--O(rn 1/r )General Chord, 2001O(log 2 n)--O(log n)General Pastry, 2001O(log 2 n)--O(log n)General Awerbuch Peleg, 1991 --polylog General PRR, 1997--O(1)O(log n)Special RRVV, 2001polylog General PRR + thisO(log 2 n)O(1)O(log n)Special TapestryO(log 2 n)Low in practice O(log n)General Related Work

29 Maintaining Object Availability Object requests continue New node: resends requests for object it does not have via surrogate Established node: always checks that that it is final destination. –Sometimes-checking would require state. May get cycle for non-existent objects, but can be detected.

30 Body Finding the nearest neighbor –Can query for distance between self and any given node. –Assume a low expantion property (low dimentional) Karger and Ruhl, May 2002. Our algorithm not as good for general problem, but solves our particular problem better –No additional storage needed –Finds all levels of table

31 Picture new

32 Introduction Object Location/DOLR slide Related Work table –Not much done with stretch Our results –Add insertion to PRR/Tapestry Deletes Parallel inserts –Solve nearest neighbor problem inprocess Similar to Karger and Ruhl –Result for general metric spaces


Download ppt "Distributed Object Location in a Dynamic Network Kirsten Hildrum, John D. Kubiatowicz, Satish Rao and Ben Y. Zhao."

Similar presentations


Ads by Google