The Pulsar (parallel user-level server architecture) project explores techniques for building high-performance scalable network servers, such as web servers or NFS servers, from clusters of networked PCs. Pulsar runs on the SHRIMP cluster multicomputer, and achieves high performance using SHRIMP's support for user-level internode communication.
In Pulsar, each node in the cluster stores some fraction of the data on its local disks, and dedicates some of its RAM as a cache. Each node serves a portion of the client load, communicating with other nodes in the cluster to acquire needed data. Cluster servers such as Pulsar exhibit incremental scalability: the software avoids using centralized resources, and so the aggregate throughput of the system increases as more nodes are added.
Pulsar's performance advantage comes from its aggressive user-level implementation: in common cases, Pulsar never makes a system call, except to initiate direct-to-user-memory disk reads and writes. Caching, node-to-node communication and all other common operations occur entirely at user level. This style of implementation avoids context switch overheads and expensive data copies, and allows the system to approach the performance limits imposed by the hardware. In addition to its user-level implementation, Pulsar uses a variety of other techniques to boost performance and scalability: low-cost-high-performance commodity hardware, coherent caching, striping, user-level threads, metadata write-behind, asynchronous disk I/O, and others.