The Influence of Scale on Distributed File System Design

M. Satyanarayanan


Scale should be recognized as a primary factor influencing the architecture and implementation of distributed systems. This paper uses Andrew and Coda, distributed file systems built at Carnegie Mellon University, to validate this proposition. Performance, operability and security are dominant considerations in the design of these systems. Availability is a further consideration in the design of Coda. Client caching, bulk data transfer, token-based mutual authentication, and hierarchical organization of the protection domain have emerged as mechanisms that enhance scalability. The separation of concerns made possible by functional specialization has also proved valuable in scaling. Heterogeneity is an important by-product of growth, but the mechanisms available to cope with it are rudimentary. Physical separation of clients and servers turns out to be a critical requirement for scalability.