Lessons Learned from Building and Using Arjuna Distributed Programming System

Arjuna is an object-oriented programming system implemented entirely in C++ that provides a set of tools for the construction of fault-tolerant distributed applications. Arjuna exploits features found in most object-oriented languages (such as inheritance) and only requires a limited set of system capabilities commonly found in conventional operating systems. Arjuna provides the programmer with classes that implement atomic transactions, object-level recovery, concurrency control, and persistence. The system is portable, modular, and flexible; the system software has been available to users via ftp since 1992. This talk will present the overall design details of Arjuna and take a retrospective look at the system based on the application building experience of users.