On the performance of distributed objects

Abstract Early distributed shared memory systems used the shared virtual memory approach with fixed-size pages, usually 1–8 KB. As this does not match the variable granularity of sharing of most programs, recently the emphasis has shifted to distributed object-oriented systems. With small object sizes, the overhead of inter-process communication could be large enough to make a distributed program too inefficient for practical use. To support research in this area, we have implemented a user-level distributed programming testbed, DIPC, that provides shared memory, semaphores and barriers. We develop a computationally-efficient model of distributed shared memory using approximate queueing network techniques. The model can accommodate several algorithms including central server, migration and read-replication. These models have been carefully validated against measurements on our distributed shared memory testbed. Results indicate that for large granularities of sharing and small access bursts, central server performs better than both migration and read-replication algorithms. Read-replication performs better than migration for small and moderate object sizes for applications with high degree of read-sharing and migration performs better than read-replication for large object sizes for applications having moderate degree of read-sharing.

[1]  Andrew S. Tanenbaum,et al.  Modern Operating Systems , 1992 .

[2]  Larry Carter,et al.  Distrbution and Abstract Types in Emerald , 1987, IEEE Transactions on Software Engineering.

[3]  Susan J. Eggers,et al.  Simplicity Versus Accuracy in a Model of Cache Coherency Overhead , 1991, IEEE Trans. Computers.

[4]  Michael Stumm,et al.  Analytical Prediction of Performance for Cache Coherence Protocols , 1997, IEEE Trans. Computers.

[5]  Brett D. Fleisch,et al.  Mirage: a coherent distributed shared memory design , 1989, SOSP '89.

[6]  Kirk L. Johnson,et al.  CRL: high-performance all-software distributed shared memory , 1995, SOSP.

[7]  Edward D. Lazowska,et al.  Quantitative system performance - computer system analysis using queueing network models , 1983, Int. CMG Conference.

[8]  Umakishore Ramachandran,et al.  An implementation of distributed shared memory , 1991, Softw. Pract. Exp..

[9]  Nicholas Carriero,et al.  Linda and Friends , 1986, Computer.

[10]  Willy Zwaenepoel,et al.  Techniques for reducing consistency-related communication in distributed shared-memory systems , 1995, TOCS.

[11]  Alan L. Cox,et al.  TreadMarks: shared memory computing on networks of workstations , 1996 .

[12]  John N. Tsitsiklis,et al.  Parallel and distributed computation , 1989 .

[13]  Kai Li,et al.  Shared virtual memory on loosely coupled multiprocessors , 1986 .

[14]  Bill Nitzberg,et al.  Distributed shared memory: a survey of issues and algorithms , 1991, Computer.

[15]  Ronald G. Minnich,et al.  The Mether System: Distributed Shared Memory for SunOS 4.0 , 1993 .

[16]  Anoop Gupta,et al.  SPLASH: Stanford parallel applications for shared-memory , 1992, CARN.

[17]  Maurice J. Bach The Design of the UNIX Operating System , 1986 .

[18]  Richard E. Kessler,et al.  An analysis of distributed shared memory algorithms , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[19]  Timothy A. Gonsalves,et al.  A DSM-based portable distributed programming testbed , 1995 .

[20]  Kai Li,et al.  Heterogeneous Distributed Shared Memory , 1992, IEEE Trans. Parallel Distributed Syst..

[21]  Michael Stumm,et al.  Algorithms implementing distributed shared memory , 1990, Computer.

[22]  P. Keleher,et al.  Lazy release consistency for distributed shared memory , 1996 .

[23]  Henri E. Bal,et al.  A comparison of two paradigms for distributed shared memory , 1992, Softw. Pract. Exp..

[24]  Kourosh Gharachorloo,et al.  Design and performance of the Shasta distributed shared memory protocol , 1997, ICS '97.

[25]  Jeffrey S. Chase,et al.  The Amber system: parallel programming on a network of multiprocessors , 1989, SOSP '89.

[26]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[27]  Veljko M. Milutinovic,et al.  Distributed shared memory: concepts and systems , 1997, IEEE Parallel Distributed Technol. Syst. Appl..

[28]  Shyan-Ming Yuan,et al.  Design and implementation of a distributed semaphore facility , 1992, Proceedings of the Third Workshop on Future Trends of Distributed Computing Systems.

[29]  Michel Dubois,et al.  Shared Block Contention in a Cache Coherence Protocol , 1991, IEEE Trans. Computers.

[30]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..