Ninja: A Framework for Network Services

  • Behren J
  • Brewer E
  • Borisov N
 et al. 
  • 4


    Mendeley users who have this article in their library.
  • N/A


    Citations of this article.


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.

Get free article suggestions today

Mendeley saves you time finding and organizing research

Sign up here
Already have an account ?Sign in

Find this document

There are no full text links


  • J. Robert von Behren

  • Eric A. Brewer

  • Nikita Borisov

  • Michael Chen

  • Matt Welsh

  • Josh MacDonald

Cite this document

Choose a citation style from the tabs below

Save time finding and organizing research with Mendeley

Sign up for free