Fleet System

 

Fleet is a middleware system implementing a distributed repository for persistent objects based on Byzantine quorum systems for a better system performance. Fleet is primarily target for supporting highly critical applications: in particular the objects it stores maintain the correct semantics despite the arbitrary failure (including hostile corruption) of a limited number of Fleet servers. It is designed to be highly available, dynamically extensible with new object types and highly scalable to large numbers of servers and clients. Below are sketched briefly some of its features:

  • Fault tolerance: the correctness of the services provided and the semantics of  the object stored is guaranteed despite any benign failures and a limited number of Byzantine server failures.
  • Fault detection: Fleet continually monitors servers to detect when the number of  faulty servers is approaching that tolerable limit
  • High scalability: this is achieved by means of Byzantine quorum system techniques.  This resulted also in a better load balancing across servers and lower access cost.
  • Concurrent semantics: Fleet provides a generic protocol for turning any object into a shared object with linearizable concurrent semantics, in addition to protocols for implementing safe and atomic varibles.
  • Extensibility: Fleet provide a mechanism to turn at run-time any application-defined object into Fleet objects. This mechanism is completely transparent to the user.
  • Liveness: during periods of stability operations between clients and servers terminate with probability one.
  • Autonomy: each Fleet object is replicated at a set of Fleet servers designed by the application depending on the level of fault-tolerance desired by the creator of the object.
  • Isolation: to support possible overlapping universes of Fleet servers, each Fleet Object is created with a name space and that allows only the creator of the name space to place new object within it.

A prototype of a voting application using the Fleet package was implemented and demonstrated at DARPA Exposition in July 2001.