A re-implementation of TransPive: Lessons from the experience
TransPive is a distributed Lisp system that originally ran on a Transputers network. The system simulates a shared object space, supporting remote pointers with a distributed object manager and a distributed Garbage Collector (GC). A future primitive, with an explicit touch operation, is provided to spawn remote tasks.
This paper presents a new version of TransPive, running on a TCP/IP network using PVM as the communication layer. This version supports a new causal ordering, a different object manager (based on causal broadcasts), a new GC, and a different implementation of the message-sending primitives.
Some applications have been run on both versions, showing important lessons on distributed language implementation. We show here a parallel triangulation application with its results.
Some conclusions are drawn from the experience, mainly the need for first class threads (treated as objects), an object-oriented language and very simple GCs.
KeywordsDistribution Object Management Garbage Collection Replica Coherency
Unable to display preview. Download preview PDF.
- [Birm 91]K. P. Birman, A. Schiper, P. Stephenson, “Lightweight Causal and Atomic Group Multicast,” ACM Trans. on Computer Systems, Vol. 9, N. 3, pp. 272–314, August 1991.Google Scholar
- [Birr 84]A. D. Birrel, B. J. Nelson, “Implementing Remote Procedure Calls,” ACM Trans. on Computer Systems, Vol. 2, N. 1, pp. 39–59, February 1984.Google Scholar
- [Lamp 78]L. Lamport, “Time, Clocks, and the Ordering of Events in a Distributed System,” Communications of the ACM, Vol. 21, No. 7, pp. 558–565, July 1978.Google Scholar
- [Lang 92]Lang, B., Queinnec, C. and Piquer, J.: “Garbage Collecting the World,” 19th ACM Conference on Principles of Programming Languages 1992, Albuquerque, New Mexico, January 1992, pp. 39–50.Google Scholar
- [Orell 94]A. Orellana, J. M. Piquer, “Asynchronism in Distributed Systems: Implementing Large Causality,” Proc of the XIV International Conference of the Chilean Computer Science Society, Concepción, Chile, November 1994.Google Scholar
- [Piqu 91a]J. M. Piquer, “Indirect Reference Counting: A Distributed GC,” LNCS 505, PARLE '91 Proceedings Vol I, pp. 150–165, Springer Verlag, Eindhoven, The Netherlands, June 1991.Google Scholar
- [Piqu 91b]J. M. Piquer, “Preserving Distributed Data Coherence Using Asynchronous Broadcasts,” Proc. of the XI International Conference of the Chilean Computer Science Society, Plenum Press, Santiago, Chile, October 1991.Google Scholar
- [Piqu 92a]J. M. Piquer, “Large Causality: Ordering Broadcasts and Messages,” position paper, 5th ACM SIGOPS Workshop on Models and Paradigms for Distributed Systems Structuring, Mt Saint-Michel, France, September 1992.Google Scholar
- [Piqu 92b]J. M. Piquer, C. Queinnec, “TransPive: A Distributed Lisp System,” Lettre du Transputer, Laboratoire d'Informatique de Besançon, N. 16, pp. 55–68, December 1992.Google Scholar
- [Piqu 95]J. M. Piquer, “Indirect Mark and Sweep: a Distributed GC,” International Workshop on Memory Management, IWMM'95, Kinross, Scotland, UK, September 1995.Google Scholar
- [Rivar 84]M. C. Rivara, “Mesh Refinement Processes Based on the Generalized Bisection of Simplices,” Journal of Numerical Analysis, 21, pp. 604–613, 1984.Google Scholar
- [Sun 95]Sun Microsystems Computer Corporation, “The Java Language Specification”, http://sunsite.unc.edu/java, May 1995.Google Scholar