The Aleph Toolkit: Support for Scalable Distributed Shared Objects

  • Maurice Herlihy
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1602)


The shared object model is an appealing programming abstraction for distributed computing. By hiding the details of the network and data distribution, it allows the programmer to focus on higher-level concerns, and makes the program structure robust in the presence of changes in distribution patterns or environment. Nevertheless, it is not at all clear that the distributed shared object model can be adapted to the needs of modern large-scale distributed applications.

The Aleph Toolkit is a collection of Java packages intended to support the construction of distributed shared objects in a way that addresses networking-related performance issues. This paper describes the design and rationale for the Aleph API, as well as our preliminary experience implementing a distributed shared object system in Java.


Multicast Group Shared Object Reply Message Distribute Shared Memory Message Class 
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. 1.
    Adve, S.V., Gharachorloo, K.: Shared Memory Consistency models: A Tutorial. IEEE Computer 29(12), 66–76 (1996)Google Scholar
  2. 2.
    Ahuja, S., Carriero, N., Gelernter, D.: Linda and Friends. IEEE Computer 19(8), 26–34 (1986)Google Scholar
  3. 3.
    Amir, Y., Dolev, D., Kramer, S., Malki, D.: Transis: A communication subsystem for high availability. In: Twenty-Second International Symposium on Fault- Tolerant Computing, July 1992, pp. 76–84 (1992)Google Scholar
  4. 4.
    Bal, H.E., Kaashoek, M.F., Tanenbaum, A.S.: Experience with Distributed Programming in Orca. In: Proc. of the 1990 Int’l Conf. on Computer Languages, March 1990, pp. 79–89 (1990)Google Scholar
  5. 5.
    Bennett, J.K., Carter, J.B., Zwaenepoel, W.: Munin: Distributed Shared Memory Based on Type-Specific Memory Coherence. In: Proc. of the Second ACM SIG-PLAN Symp. on Principles and Practice of Parallel Programming (PPOPP 1990), March 1990, pp. 168–177 (1990)Google Scholar
  6. 6.
    Bershad, B.N., Zekauskas, M.J., Sawdon, W.A.: The Midway Distributed Shared Memory System. In: Proc. of the 38th IEEE Int’l Computer Conf (COM-PCON Spring 1993), pp. 528–537 (February 1993)Google Scholar
  7. 7.
    Birman, K.P.: The process group approach to reliable distributed computing. Communications of the ACM 36(12), 37–53 (1993)CrossRefGoogle Scholar
  8. 8.
    Chandy, K.M., Rifkin, A.d., Sivilotti, P., Mandelson, J., Richardson, M., Tanaka, W., Weisman, L.: A world-wide distributed system using Java and the internet. In: IEEE International Symposium on High Performance Distributed Computing (HPDC-5) (August 1996)Google Scholar
  9. 9.
    Demmer, M., Herlihy, M.P.: The arrow directory protocol. In: Proceedings of 12th International Symposium on Distributed Computing (September 1998)Google Scholar
  10. 10.
    Floyd, S., Jacobson, V., Liu, C., McCanne, S., Zhang, L.: A reliable multicast framework for light-weight sessions and application level framing. EEE/ACM Transactions on Networking 5(6), 784–803 (1997)CrossRefGoogle Scholar
  11. 11.
    Message Passing Interface Forum. Mpi: A message-passing interface standard. Technical Report CS-94-230, University of Tennessee, Knoxville, TN (April 1994)Google Scholar
  12. 12.
    Geist, A., Beguelin, A., Dongarra, J.J., Jiang, W., Manchek, R., Sunderam, V.S.: Pvm 3 user’sguide and reference manu. Technical Report ORNL/TM-12187, Oak Ridge National Laboratory (May 1993)Google Scholar
  13. 13.
    M.P. Herlihy, M.P. Warres. A tale of two directories: Implementing distributed shared objects in Java. (submitted for publication)
  14. 14.
    Jacob, M., Pliillipsen, M., Karrenback, M.: Javaparty, a distributed companion to Java,
  15. 15.
    Johnson, K.L., Kaashoek, M.F., Wallach, D.A.: CRL: High-Performance All-Software Distributed Shared Memory. In: Proc. of the 15th ACM Symp. on Operating Systems Principles (SOSP-15), December 1995, pp. 213–228 (1995)Google Scholar
  16. 16.
    Keleher, P., Dwarkadas, S., Cox, A.L., Zwaenepoel, W.: TreadMarks: Distributed Shared Memory on Standard Workstations and Operating Systems. In: Proc. of the Winter 1994 USENIX Conference, January 1994, pp. 115–131 (1994)Google Scholar
  17. 17.
    Levine, B.N., Garcia-Luna-Aceves, J.J.: A comparison of reliable multicast protocols. Multimedia Systems Journal (ACM/Springer) 6(5) (August 1998)Google Scholar
  18. 18.
    Li, K., Hudak, P.: Memory Coherence in Shared Virtual Memory Systems. ACM Trans. on Computer Systems 7(4), 321–359 (1989)CrossRefGoogle Scholar
  19. 19.
    Sun MicroSystems. Java remote method invocation specification (1997),
  20. 20.
    Nikhil, R.S.: Cid: A Parallel, Shared Memory C for Distributed-Memory Machines. In: Proc. of the 7th Int’I Workshop on Languages and Compilers for Parallel Computing (August 1994)Google Scholar
  21. 21.
    Pope, A.: The CORBA reference guide: Understanding the Common Object Request Broker. Addison-Wesley, Reading (1997)Google Scholar
  22. 22.
    Topol, B., Ahamad, M., Stasko, J.T.: Robust state sharing for wide area distributed applications. Technical Report GIT-CC-97-25, Georia Institute of Technology, Atlanta, GA (September 1997)Google Scholar
  23. 23.
    van Renesse, R., Birman, K.P., Friedman, R., Hayden, M., Karr, D.A.: A framework for protocol composition in horus. In: Proc. of the 14th Annual ACM Symp. on Principles of Distributed Computing (PODC 1995), August 1995, pp. 80–89 (1995)Google Scholar
  24. 24.
    von Eicken, T., Culler, D.E., Goldstein, S.C., Schauser, K.E.: Active messages: a mechanism for integrated communication and computation. In: Proc. of the 19th Annual Int’I Symp. on Computer Architecture (ISCA 1992) (May 1992)Google Scholar
  25. 25.
    Waldo, J.: Jini architecture overview (1998),
  26. 26.
    Yu, W.M., Cox, A.L.: Java/DSM: a Platform for Heterogeneous Computing. In: ACM 1997 Workshop on Java for Science and Engineering Computation (June 1997)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Maurice Herlihy
    • 1
  1. 1.Computer Science DepartmentBrown UniversityProvidenceUSA

Personalised recommendations