Stabilis: A Case Study in Writing Fault-Tolerant Distributed Applications Using Persistent Objects (1992)

Author(s): Buzato, L. and Calsavara, A.

Abstact: This paper presents Stabilis, a fault-tolerant object-oriented distributed database management system that has been written as an exercise in persistent programming. Stabilis is implemented on top of Arjuna, an object-oriented programming system that provides the basic mechanisms for fault tolerance and distribution. The computational model used by Arjuna is based upon the concept of using atomic actions 1 to control operations upon persistent objects. Stabilis aims at experimenting with Arjuna to build large applications that use persistent objects. Such experiment has led us to extend some of the mechanisms for persistent programming already existent in Arjuna. Stabilis manages objects that are persistent, recoverable and can be accessed remotely and concurrently in a consistent manner. Objects with such properties have an important function in the overall operation of Stabilis. The database manager can be operated either through a visual database interface or a query interpreter; both translate commands into a series of operations of the database manager. All operations of the database manager make use of atomic actions and locks to structure and control accesses to objects. A flexible use of nested atomic actions permits objects to retrogress to previous consistent states. Stabilis has ben developed using C++; dispensing with the use of any specifically designed language of persistent programming.