Remote pipes and procedures for efficient distributed communication
- 1 August 1988
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 6 (3) , 258-283
- https://doi.org/10.1145/45059.45061
Abstract
We describe a new communication model for distributed systems that combines the advantages of remote procedure call with the efficient transfer of bulk data. Three ideas form the basis of this model. First, remote procedures are first-class values which can be freely exchanged among nodes, thus enabling a greater variety of protocols to be directly implemented in a remote procedure call framework. Second, a new type of abstract object, called a pipe , allows bulk data and incremental results to be efficiently transported in a type-safe manner. Unlike procedure calls, pipe calls do not return values and do not block a caller. Data sent down a pipe is received by the pipe's sink node in the order sent. Third, the relative sequencing of pipes and procedures can be controlled by combining them into channel groups . Calls on the members of a channel group are guaranteed to be processed in order. Application experience with this model, which we call the Channel Model , is reported. Derived performance bounds and experimental measures demonstrate k pipe calls can perform min ( 1 + ( r / p ), k ) times faster than k procedure calls, where r is the total roundtrip remote communication time and p is the procedure execution time.Keywords
This publication has 14 references indexed in Scilit:
- A Remote Procedure Call Facility for Interconnecting Heterogeneous Computer SystemsIEEE Transactions on Software Engineering, 1987
- An architecture for large scale information systemsACM SIGOPS Operating Systems Review, 1985
- The Alpine file systemACM Transactions on Computer Systems, 1985
- Distributed process groups in the V KernelACM Transactions on Computer Systems, 1985
- Secure communication using remote procedure callsACM Transactions on Computer Systems, 1985
- Implementing remote procedure callsACM Transactions on Computer Systems, 1984
- Computation and communication in R*ACM Transactions on Computer Systems, 1984
- Guardians and Actions: Linguistic Support for Robust, Distributed ProgramsACM Transactions on Programming Languages and Systems, 1983
- A Value Transmission Method for Abstract Data TypesACM Transactions on Programming Languages and Systems, 1982
- Using encryption for authentication in large networks of computersCommunications of the ACM, 1978