USENIX 2002 Annual Conference - Technical Program Abstract
Ninja: A Framework for Network Services
J. Robert von Behren, Eric A. Brewer, Nikita Borisov,
Michael Chen, Matt Welsh, Josh MacDonald, Jeremy Lau, Steve Gribble, and David Culler,
University of California at Berkeley
Ninja is a new framework that makes it easy to create robust scalable Internet
services. We introduce a new programming model based on the natural parallelism
of large-scale services, and show how to implement the model. The first key
aspect of the model is intelligent connection management, which enables high
availability, load balancing, graceful degradation and online evolution. The
second key aspect is support for shared persistent state that is automatically
partitioned for scalability and replicated for fault tolerance. We discuss
two versions of shared state, a cluster-based hash table with transparent
replication and novel features that reduce lock contention, and a cluster-based
file system that provides local transactions and cluster-wide namespaces and
replication. Using several applications we show that the framework enables
the creation of scalable, highly available services with persistent data,
with very little application code -- as little as one-tenth the code size
of comparable stand-alone applications.
- View the full text of this paper in
The Proceedings are published as a collective work, © 2002 by the USENIX Association. All Rights Reserved. Rights
to individual papers remain with the author or the author's employer.
Permission is granted for the noncommercial reproduction of the complete
work for educational or research purposes. USENIX acknowledges all
trademarks within this paper.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.