Distributed data structures: A complexity-oriented view

  • David Peleg
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 486)


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.


Data Item Priority Queue Concurrency Control Access Cost List Structure 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [ABLP89]
    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. [AHU83]
    A.V. Aho, J.E. Hopcroft, and J.D. Ullman. Data Structures and Algorithms. Addison-Wesley Publishing Co., Reading, MA, 1983.Google Scholar
  3. [AK85]
    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. [Awe85]
    B. Awerbuch. Complexity of network synchronization. J. of the ACM, 32:804–823, 1985.Google Scholar
  5. [BHG87]
    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. [BJ87]
    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. [BP90]
    J. Bar-Ilan and D. Peleg. How to Assign Network Centers. Technical Report CS90-20, The Weizmann Institute, August 1990.Google Scholar
  8. [BS79]
    R. Bayer and M. Schkolnick. Concurrency of operations on B-trees. Acta Informatica, 9:1–21, 1979.Google Scholar
  9. [CCIR86]
    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. [CGL86]
    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. [CM84]
    J. Chang and N.F. Maxemchuk. Reliable broadcast protocols. ACM Trans. on Comput. Syst., 3:251–273, 1984.Google Scholar
  12. [DMadH90]
    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. [DS85]
    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. [DS87]
    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. [Ell80a]
    C.S. Ellis. Concurrent search and insertion in 2–3 trees. Acta Informatica, 14:63–86, 1980.Google Scholar
  16. [Ell80b]
    C.S. Ellis. Concurrent search and insertion in AVL trees. IEEE Trans. on Computers, C-29:811–817, 1980.Google Scholar
  17. [Ell85]
    C.S. Ellis. Distributed data structures, a case study. IEEE Trans. on Computers, C-34:1178–1185, 1985.Google Scholar
  18. [FWB85]
    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. [GHS83]
    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. [Gif79]
    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. [GK89]
    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. [GS89a]
    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. [GS89b]
    D. Ginat and A.U. Shankar. Decentralized ordering of contending nodes in a distributed system. 1989. unpublished manuscript.Google Scholar
  24. [Her84]
    M. Herlihy. Replication Methods for Abstract Data Types. Technical Report TR-319, MIT, Lab. for Computer Science, May 1984.Google Scholar
  25. [Her87]
    M. Herlihy. Concurrency versus availability: atomicity mechanisms for replicated data. ACM Trans. on Comput. Syst., 5:249–274, 1987.Google Scholar
  26. [Her90]
    M. Herlihy. A methodology for implementing highly concurrent data structures. In Proc. ACM PPoPP, ACM, 1990.Google Scholar
  27. [HS84]
    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. [HW87]
    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. [KL80]
    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. [Knu73]
    D.E. Knuth. The Art of Computer Programming, Vol. 3. Addison-Wesley Publishing Co., Reading, MA, 1973.Google Scholar
  31. [KU86]
    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. [Lam86]
    L. Lamport. On interprocess communication, parts I and II. Distributed Computing, 1:77–101, 1986.Google Scholar
  33. [LEH85]
    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. [Lei79]
    C.E. Leiserson. Systolic Priority Queues. Technical Report CMU-CS-79-115, Carnegie-Mellon University, 1979.Google Scholar
  35. [LM79]
    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. [Lov75]
    L. Lovász. On the ratio of optimal integral and fractional covers. Discrete Mathematics, 13:383–390, 1975.Google Scholar
  37. [LS88]
    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. [Man86]
    U. Manber. On maintaining dynamic information in a concurrent environment. SIAM J. on Comput., 15:1130–1142, 1986.Google Scholar
  39. [ML84]
    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. [MV85]
    S.J. Mullender and P.M.B. Vitányi. Distributed match-making. Algorithmica, 3:367–391, 1985.Google Scholar
  41. [OD81]
    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. [ORS82]
    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. [Pap86]
    C.H. Papadimitriou. The Theory of Concurrency Control. Computer Science Press, Rockville, MD, 1986.Google Scholar
  44. [Pel89]
    D. Peleg. Distance-Dependent Distributed Directories. Technical Report CS89-10, The Weizmann Institute, May 1989.Google Scholar
  45. [PN85]
    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. [PU89]
    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. [PZ90]
    D. Peleg and K. Ziegler. A compact, memory-balanced, deterministic distributed dictionary. 1990. In preparation.Google Scholar
  48. [Ran87]
    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. [Ree78]
    D.P. Reed. Naming and Synchronization in a Decentralized Computer System. PhD thesis, MIT, Dept. of Electrical Engineering, 1978.Google Scholar
  50. [RK88]
    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. [Sag85]
    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. [Seg83]
    A. Segall. Distributed network protocols. IEEE Trans. on Info. Theory, IT-29:23–25, 1983.Google Scholar
  53. [SK85]
    N. Santoro and R. Khatib. Labelling and implicit routing in networks. The Computer Journal, 28:5–8, 1985.Google Scholar
  54. [SL87]
    A.M. Schwartz and M. Loui. Dictionary machines on cube-class networks. IEEE Trans. on Computers, C-36:100–105, 1987.Google Scholar
  55. [Ter87]
    D.B. Terry. Cashing hints in distributed systems. IEEE Trans. on Software Eng., SE-13:48–54, 1987.Google Scholar
  56. [UW87]
    E. Upfal and A. Wigderson. How to share memory in a distributed system. J. of the ACM, 34:116–127, 1987.Google Scholar
  57. [Wei84]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • David Peleg
    • 1
  1. 1.Department of Applied MathematicsThe Weizmann InstituteRehovotIsrael

Personalised recommendations