Arjuna Programmer's Manual Public Release 1.1
Addendum for Public Release 2.0 Beta.
This addendum is intended to supplement the Arjuna System Programmer's Guide Public Release 1.1 and bring it up-to-date with respect to Public Release 2.0 Beta. All of the changes mentioned in this addendum will be incorporated into the revised Public Release 2.0 Guide. Due to the fact that this is a beta-release of the software, further changes may be made to the system before the final release. Therefore we have attempted only to consider those changes which have been "finalised" and fully incorporated into the system in this addendum.
The structure of this addendum is as follows:
Section 1. Changes To The System: A brief overview of the changes made to the system.
Section 2. The Object Model: A description of the changes which have been made to the object model used by Arjuna.
Section 3. Object Replication: A description of the replication protocols which Arjuna uses and how applications can make use of replication. An example of creating and using a replica group is also described.
Section 4. The Object Store: A description of changes which have been made to the object store to improve its performance.
Section 5. Crash Recovery: A description of how the changes in Arjuna affect the crash recovery mechanisms.
Appendix A. User Classes: A quick reference to those Arjuna classes that a programmer will most typically make use of and which have been changed.
1. Changes To The System
This section gives a brief overview of the changes to the Arjuna system which later sections will describe in more detail. The changes can be outlined as follows:
? Object Store: The Arjuna object store has been modified to significantly improve its write performance. These modifications have resulted in the fact that object states (the compact representations of objects that are actually stored in the Object Store) are no longer stored as simple byte streams. This has several consequences, amongst which is the fact that object state files can no longer be simply copied around the system (or between nodes) using standard UNIX commands, furthermore the new release of Arjuna will not function correctly with the old object state files. However, as will be described later, several application tools have been provided to overcome these difficulties.
? Object Model: The object model used by Arjuna has been changed as a result of providing object replication. However, this has been accomplished in such a manner that applications written using previous versions of Arjuna will continue to function un-modified (changes to the object store will require changes to any existing object states which will be used).