Smart remote procedure calls: transparent treatment of remote pointers

Remote procedure call (RPC) systems have been proven to be a practical basis for building distributed applications. The RPC technique abstracts a typical communication pattern to an ordinary procedure call. Compared with an ordinary procedure call, however, the conventional RPC technique has one evident restriction; pointers (addresses) cannot be passed to remote procedures without the explicit and nontrivial programming effort. This paper presents a method that eliminates this restriction. The method enables transparent treatment of pointers in RPC by combining three key techniques: virtual memory manipulation, pointer swizzling, and coherency protocol. The experiments performed using an implementation of the method show that the method provides performance that is scalable to the access ratio of the remotely referenced data.<<ETX>>

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

[2]  Brian N. Bershad,et al.  A Remote Procedure Call Facility for Interconnecting Heterogeneous Computer Systems , 1987, IEEE Transactions on Software Engineering.

[3]  Paul J. Leach,et al.  Network computing architecture , 1990 .

[4]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[5]  Raj Srinivasan,et al.  XDR: External Data Representation Standard , 1995, RFC.

[6]  Kazuhiko Kato,et al.  Semantics for communication primitives in a polymorphic language , 1993, POPL '93.

[7]  Richard D. Schlichting,et al.  Facilitating Mixed Language Programming in Distrbuted Systems , 1987, IEEE Transactions on Software Engineering.

[8]  Henri E. Bal,et al.  Orca: a language for distributed programming , 1990, SIGP.

[9]  J. Eliot B. Moss,et al.  Working with Persistent Objects: To Swizzle or Not to Swizzle , 1992, IEEE Trans. Software Eng..

[10]  Paul R. Wilson,et al.  Pointer swizzling at page fault time: efficiently supporting huge address spaces on standard hardware , 1991, CARN.

[11]  Barton P. Miller,et al.  Distributed upcalls: a mechanism for layering asynchronous abstractions , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[12]  Phillip B. Gibbons A Stub Generator for Multilanguage RPC in Heterogeneous Environments , 1987, IEEE Transactions on Software Engineering.

[13]  Takashi Masuda,et al.  Distributed shared repository: a unified approach to distribution and persistency , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[14]  John R. Corbin The Art of Distributed Applications: Programming Techniques for Remote Procedure Calls , 1991 .

[15]  R. G. G. Cattell,et al.  Object Data Management: Object-Oriented and Extended Relational Database Systems (Revised Edition) , 1991 .