Skip to main content

Distributed data structures: A complexity-oriented view

  • Conference paper
  • First Online:
Distributed Algorithms (WDAG 1990)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 486))

Included in the following conference series:

Abstract

The problem of designing, implementing and operating a data structure in a distributed system is studied from a complexity oriented point of view. Various relevant issues are addressed via the development of an example structure. The structure evolves through a sequence of steps, each oriented towards attacking a different aspect of the problem. The paper concentrates on deterministic structures featuring low memory requirements, memory balance and efficient access protocols. Among the issues treated are centerless organizations of data structures, background maintenance of memory balancing, employing redundancy for increasing search efficiency and concurrent accesses to distributed structures.

Supported in part by an Allon Fellowship, by a Walter and Elise Haas Career Development Award and by a Bantrell Fellowship.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. B. Awerbuch, A. Bar-Noy, N. Linial, and D. Peleg. Compact distributed data structures for adaptive routing. In Proc. 21st ACM Symp. on Theory of Computing, pages 230–240, Seattle, Washington, May 1989.

    Google Scholar 

  2. A.V. Aho, J.E. Hopcroft, and J.D. Ullman. Data Structures and Algorithms. Addison-Wesley Publishing Co., Reading, MA, 1983.

    Google Scholar 

  3. M.J. Atallah and S.R. Kosaraju. A generalized dictionary machine for VLSI. IEEE Trans. on Computers, C-34:151–155, 1985.

    Google Scholar 

  4. B. Awerbuch. Complexity of network synchronization. J. of the ACM, 32:804–823, 1985.

    Google Scholar 

  5. P.A. Bernstein, V. Hadzilacos, and N. Goodman. Concurrency Control and Recovery in Database Systems. Addison-Wesley Publishing Co., Reading, MA, 1987.

    Google Scholar 

  6. K.P. Birman and T.A. Joseph. Reliable communication in the presence of failures. ACM Trans. on Comput. Syst., 5:47–76, 1987.

    Google Scholar 

  7. J. Bar-Ilan and D. Peleg. How to Assign Network Centers. Technical Report CS90-20, The Weizmann Institute, August 1990.

    Google Scholar 

  8. R. Bayer and M. Schkolnick. Concurrency of operations on B-trees. Acta Informatica, 9:1–21, 1979.

    Google Scholar 

  9. J.H. Chang, M.J. Chung, O.H. Ibarra, and K.K. Rao. Systolic tree implementation of data structures. In Proc. IEEE Int. Conf. on Parallel Process., pages 669–671, IEEE, 1986.

    Google Scholar 

  10. N. Carriero, D. Gelernter, and J. Leichter. Distributed data structures in Linda. In Proc. 13th ACM Symp. on Principles of Prog. Lang, pages 236–242, ACM, 1986.

    Google Scholar 

  11. J. Chang and N.F. Maxemchuk. Reliable broadcast protocols. ACM Trans. on Comput. Syst., 3:251–273, 1984.

    Google Scholar 

  12. M. Dietzfelbinger and F. Meyer auf der Heide. How to distribute a dictionary in a complete network. In Proc. 22nd ACM Symp. on Theory of Computing, 1990. to appear.

    Google Scholar 

  13. W.J. Dally and C.L. Seitz. The Balanced Cube: A Concurrent Data Structure. Technical Report 5174:TR:85, California Institute of Technology, 1985.

    Google Scholar 

  14. F. Dehne and N. Santoro. Optimal VLSI dictionary machines on meshes. In Proc. IEEE Int. Conf. on Parallel Process., pages 832–840, IEEE, 1987.

    Google Scholar 

  15. C.S. Ellis. Concurrent search and insertion in 2–3 trees. Acta Informatica, 14:63–86, 1980.

    Google Scholar 

  16. C.S. Ellis. Concurrent search and insertion in AVL trees. IEEE Trans. on Computers, C-29:811–817, 1980.

    Google Scholar 

  17. C.S. Ellis. Distributed data structures, a case study. IEEE Trans. on Computers, C-34:1178–1185, 1985.

    Google Scholar 

  18. A.J. Frank, L.D. Wittie, and A.J. Bernstein. Maintaining weakly-consistent replicated data on dynamic groups of computers. In Proc. IEEE Int. Conf. on Parallel Process., pages 155–162, IEEE, 1985.

    Google Scholar 

  19. R.G. Gallager, P.A. Humblet, and P.M. Spira. A distributed algorithm for minimum weight spanning trees. ACM Trans. on Programming Lang. and Syst., 5:66–77, 1983.

    Google Scholar 

  20. D.K. Gifford. Weighted voting for replicated data. In Proc. 7th ACM Symp. on Operating Systems Principles, pages 150–162, ACM, Pacific Grove, CA, December 1979.

    Google Scholar 

  21. P.M. Gopal and B.K. Kadaba. Analysis of a Class of Distributed Directory Algorithms. Research Report RC-14488, IBM Yorktown, March 1989.

    Google Scholar 

  22. H. Garcia-Molina and A. Spauster. Message ordering in a multicast environment. In Proc. 9th IEEE Conf. on Distributed Computing Systems, Newport Beach, CA, 1989.

    Google Scholar 

  23. D. Ginat and A.U. Shankar. Decentralized ordering of contending nodes in a distributed system. 1989. unpublished manuscript.

    Google Scholar 

  24. M. Herlihy. Replication Methods for Abstract Data Types. Technical Report TR-319, MIT, Lab. for Computer Science, May 1984.

    Google Scholar 

  25. M. Herlihy. Concurrency versus availability: atomicity mechanisms for replicated data. ACM Trans. on Comput. Syst., 5:249–274, 1987.

    Google Scholar 

  26. M. Herlihy. A methodology for implementing highly concurrent data structures. In Proc. ACM PPoPP, ACM, 1990.

    Google Scholar 

  27. D.S. Hochbaum and D. Shmoys. Powers of graphs: a powerful technique for bottleneck problems. In Proc. 16th ACM Symp. on Theory of Computing, pages 324–333, ACM, April 1984.

    Google Scholar 

  28. M. Herlihy and J. Wing. Axioms for concurrent objects. In Proc. 14th ACM Symp. on Principles of Prog. Lang, pages 13–16, ACM, January 1987.

    Google Scholar 

  29. H.T. Kung and P.L. Lehman. Concurrent manipulation of binary search trees. ACM Trans. on Programming Lang. and Syst., 5:339–353, 1980.

    Google Scholar 

  30. D.E. Knuth. The Art of Computer Programming, Vol. 3. Addison-Wesley Publishing Co., Reading, MA, 1973.

    Google Scholar 

  31. A. Karlin and E. Upfal. Parallel hashing — an efficient implementation of shared memory. In Proc. 18th ACM Symp. on Theory of Computing, May 1986.

    Google Scholar 

  32. L. Lamport. On interprocess communication, parts I and II. Distributed Computing, 1:77–101, 1986.

    Google Scholar 

  33. K.A. Lantz, J.L. Edighoffer, and B.L. Histon. Towards a universal directory service. In Proc. 4th ACM Symp. on Principles of Distributed Computing, pages 261–271, August 1985.

    Google Scholar 

  34. C.E. Leiserson. Systolic Priority Queues. Technical Report CMU-CS-79-115, Carnegie-Mellon University, 1979.

    Google Scholar 

  35. N. Lynch and M. Merritt. Introduction to the theory of nested transactions. In Int. Conf. on Database Theory, pages 278–305, Rome, Italy, 1979.

    Google Scholar 

  36. L. Lovász. On the ratio of optimal integral and fractional covers. Discrete Mathematics, 13:383–390, 1975.

    Google Scholar 

  37. V. Lanin and D. Shasha. Concurrent set manipulation without locking. In Proc. 7th ACM Symp. on Principles of Database Systems, pages 211–220, ACM, 1988.

    Google Scholar 

  38. U. Manber. On maintaining dynamic information in a concurrent environment. SIAM J. on Comput., 15:1130–1142, 1986.

    Google Scholar 

  39. U. Manber and R.E. Ladner. Concurrency control in a dynamic search structure. ACM Trans. on Database Syst., 9:439–455, 1984.

    Google Scholar 

  40. S.J. Mullender and P.M.B. Vitányi. Distributed match-making. Algorithmica, 3:367–391, 1985.

    Google Scholar 

  41. D. Oppen and Y.K. Dalal. The Clearinghouse: A Decentralized Agent for Locating Named Objects in a Distributed Environment. Technical Report OPD-T8103, Xerox Corp., October 1981.

    Google Scholar 

  42. T.A. Ottman, A.L. Rosenberg, and L.J. Stockmeyer. A dictionary machine for VLSI. IEEE Trans. on Computers, C-31:892–897, 1982.

    Google Scholar 

  43. C.H. Papadimitriou. The Theory of Concurrency Control. Computer Science Press, Rockville, MD, 1986.

    Google Scholar 

  44. D. Peleg. Distance-Dependent Distributed Directories. Technical Report CS89-10, The Weizmann Institute, May 1989.

    Google Scholar 

  45. G.F. Pfister and V.A. Norton. “hot spot” contention and combining in multistage interconnection networks. IEEE Trans. on Computers, C-34:943–948, 1985.

    Google Scholar 

  46. D. Peleg and E. Upfal. A tradeoff between size and efficiency for routing tables. J. of the ACM, 36:510–530, 1989.

    Google Scholar 

  47. D. Peleg and K. Ziegler. A compact, memory-balanced, deterministic distributed dictionary. 1990. In preparation.

    Google Scholar 

  48. A. Ranade. How to emulate shared memory. In Proc. 28th IEEE Symp. on Foundations of Computer Science, pages 185–194, October 1987.

    Google Scholar 

  49. D.P. Reed. Naming and Synchronization in a Decentralized Computer System. PhD thesis, MIT, Dept. of Electrical Engineering, 1978.

    Google Scholar 

  50. V.N. Rao and V. Kumar. Concurrent insertions and deletions in a priority queue. In Proc. IEEE Int. Conf. on Parallel Process., pages 207–211, IEEE, 1988.

    Google Scholar 

  51. Y. Sagiv. Concurrent operations on B-trees with overtaking. In Proc. 4th ACM Symp. on Principles of Database Systems, pages 28–37, ACM, January 1985.

    Google Scholar 

  52. A. Segall. Distributed network protocols. IEEE Trans. on Info. Theory, IT-29:23–25, 1983.

    Google Scholar 

  53. N. Santoro and R. Khatib. Labelling and implicit routing in networks. The Computer Journal, 28:5–8, 1985.

    Google Scholar 

  54. A.M. Schwartz and M. Loui. Dictionary machines on cube-class networks. IEEE Trans. on Computers, C-36:100–105, 1987.

    Google Scholar 

  55. D.B. Terry. Cashing hints in distributed systems. IEEE Trans. on Software Eng., SE-13:48–54, 1987.

    Google Scholar 

  56. E. Upfal and A. Wigderson. How to share memory in a distributed system. J. of the ACM, 34:116–127, 1987.

    Google Scholar 

  57. W.E. Weihl. Specification and Implementation of Atomic Data Types. Technical Memo MIT/LCS/TM-314, MIT, Lab. for Computer Science, March 1984.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jan van Leeuwen Nicola Santoro

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Peleg, D. (1991). Distributed data structures: A complexity-oriented view. In: van Leeuwen, J., Santoro, N. (eds) Distributed Algorithms. WDAG 1990. Lecture Notes in Computer Science, vol 486. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54099-7_6

Download citation

  • DOI: https://doi.org/10.1007/3-540-54099-7_6

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54099-1

  • Online ISBN: 978-3-540-47405-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics