MultiRPC is a parallel remote procedure call mechanism implemented in UNIX for the Andrew environment. This paper describes its evolution and current state. The authors discuss the motivation and design considerations for MultiRPC. They present its ancestor RPC2, the one-to-one Andrew remote procedure call mechanism, and the extension of RPC2 to create MultiRPC. After considering implementation details, they give a performance analysis of MultiRPC. Finally, related work is briefly reviewed.
The paper gives a well structured, interesting, and comprehensible report on the initial considerations, evolution, implementation, and performance analysis of a parallel RPC mechanism. The reader can easily follow the authors’ problems, ideas, decisions, and solutions. The paper’s greatest value is that it describes a real-life project with all its everyday problems, which unfortunately is seldom found in the literature.
Some of the solutions presented are too specialized, however, since they are mainly influenced by concerns specific to the given environment. For instance, the developers accepted some unsatisfactory solutions, such as different syntax for RPC2 and MultiRPC, to reduce the amount of extra code. Nevertheless, I strongly recommend the paper to all those who are interested in the design and implementation of network software.