The Architecture of Bpfs: a Basic Parallel File System

BPFS is a distributed, modular parallel le system designed for use on clusters of workstations. It is spec-iied as a set of active components, functions utilized by the components, and protocols for communication between the components. Components can be implemented in many diierent ways, depending on the hardware and software available, the performance desired, etc. A key idea is to be able to experiment with diier-ent implementations and conngurations under various operating conditions to achieve a general, exible system that delivers good performance. To date, three application program interfaces have been deened for BPFS. API0 is the rst of an anticipated series of low-level, experimental client interfaces. It provides asynchronous block-oriented operations , time-regulated \data streaming", and user-level control of both server-side caching and per-le striping onto disks. CLI is a \C Library Interface" implemented over API0 that mimics the Standard C I/O library interface, but accesses parallel les stored by BPFS rather than sequential les. The third interface is the ROMIO version of the standard MPI-IO interface which has been implemented on top of API0.