Remote pipes and procedures for efficient distributed communication

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.

This publication has 14 references indexed in Scilit: