.\" use larger type so that it looks OK after photo-reducing
.nr pp 12\" use larger point size
.nr sp 12\" yep, I really mean it
.nr tp 12\" and I'll mean it after other stuff
.nr fp 10\" don't reset to 10 point (and use 9 footnotes)
.sz 12\" believe me!!!
.\"
.\" USING THE EXODUS STORAGE MANAGER -- 2.2.2, 3.0 delta 
.\"
.po 1.0i
.ll 6.5i
.ls 1
.ce 4
.sz 14
\fBUsing the EXODUS Storage Manager V3.0\fR
.sz 12
Differences between V2 and V3.0.
Last revision: May, 1993
.sp 3
.fo ''%''
.br
.sh 1 "Introduction"
.pp
This document summarizes the differences between
versions 2 and 3.0 of the Exodus Storage Manager.
\*(lqV2\*(rq refers to all Version 2 releases:
V2.0, V2.1, and V2.2).
This document includes references to the sections of the V3.0 user
guide,
\fBUsing the EXODUS Storage Manager V3.0\fR.
The section numbers do not correspond to the V2 documents.
The reader is assumed to be familiar with a V2 release.
.br
.sh 1 "Release"
.np
V3.0 runs on HP 7xx platforms running under HP-UX.
.np
The makefiles have been changed so that the sources are combined before
making; 
V3.0 compiles in substantially less time than V2,
and it uses less disk space for object files.
.np
V3.0 is made with g++ (V2 was made with ATT C++).
.sh 1 "General Functionality"
.np
Includes bulk-loading of linear hashed indexes.
(Section 4.10.3)
.np
Includes two forms of distributed transactions.
\*(lqInternally distributed\*(rq transactions
are transactions that span several Storage Manager servers.
The application - client library interface supports these
with no changes from V2.
An \*(lqexternally distributed\*(rq transaction
is a 
Storage Manager transaction (possibly using several servers)
that is a \*(lqthread\*(rq of a \*(lqglobal transaction\*(rq
that may involve other transaction processing systems. 
The application - client library interface supports these transactions
with a set of new functions.
(Sections 4.3, 4.11)
.np
The application no longer uses
file names for volumes.
Volumes are known by their volume IDs.
Only servers know how to map a volume ID to a Unix path name.
(Sections 4.4, 5.1.)
.np
Volumes are \*(lqauto-mounted\*(rq:
applications 
no longer explicitly open and close
connections to servers.
References to data cause the proper servers to be contacted.
(Sections 4.4, 5.1.)
.np
The servers and client library keep expanded statistics about
their message traffic. 
(Section 4.11.2)
.sh 1 "Application - Client Library Interface"
.sh 2 "Reporting Errors "
.np
The client library exports a new global variable,
\fCsm_reason\fR.
When a transaction is aborted by the Storage Manager,
\fCsm_reason\fR indicates why the transaction was aborted.
(Section 4.1)
.np
V3.0 is a little smarter about reporting that a transaction
was aborted.
In some cases when V2 reported an 
\*(lqunknown transaction identifier\*(rq
error because it lost track of the transaction
that was aborted,
V3.0 reports 
\*(lqtransaction aborted\*(rq.
(Section 4.1)
.sh 2 "New Functions"
.np
New administrative functions allow a client to determine
the type of a volume and print the expanded message statistics.
(Section 4.11.2)
.np
New administrative functions allow 
a client to change the server's table of mountable 
volumes (a table that did not exist in V2).
(Section 4.11.2)
.np
sm_RemoveRootEntry( ) allows root entries to be removed.
(Section 4.5.)
.sh 2 "Changed Functions"
.np
The function sm_Initialize( ) no longer takes any parameters.
(Section 4.2)
.np
All the administrative functions have new arguments
to determine which server(s) are of interest.
(Section 4.11.2)
.np
The arguments to the function sm_MountVolume( ) 
have new meanings,
although the function's prototype is unchanged
for the sake of backward compatibility.
(Section 4.4)
.np
The sm_* functions (Sections 4.7.1, 4.7.3)
that create objects or change the sizes
of objects break their operations down into chunks of a 
.q "reasonable" 
size when the operation involves a large amount of data.  
These functions 
take into account the size of the buffer
group when chosing a reasonable size.
As a result, operations are less likely to 
fail for lack of buffer space.
.sh 2 "Client Options"
.np
The
\fCmount: volid port@server\fR 
option tells where to find the server that manages the volume.
(Section 4.2, 4.4.)
.np
The
\fCpagelock: SH or EX\fR
option determines the default lock mode for pages.
It replaces a global variable.
(Section 4.2, A.1)
.np
The
\fClocktimeout: # 10-second intervals\fR
optin limits the amount of time the application will 
await a lock before the lock request fails with esmLOCKBUSY.
(Section 4.2, A.3.)
.sh 1 "Server"
.sh 2 "Server Options"
.lp
(All the server options are described in Section 5.2.2.)
.np
The \fCwrapcount\fR option
is seldom, if ever needed.
the server figures out what wrap count it needs to use
for the volumes listed in the server's configuration files.
(If volumes are added later, the server might have to be restarted
with a higher wrap count.)
.np
The
\fCbackground\fR option is no longer needed for users
of csh(1) and other shells that have job control;
the server figures out if it is in the background.
(Bourne shell users still need this option.)
.np
The
\fCmaxvolumes\fR option is no longer available;  
the server figures out what to use by reading the configuration file.
.np
The 
\fCextrastats\fR option
is no longer available; the stats are no longer printed.
.np
The
\fCpreflushlog\fR option is no longer available; it is always on.
.np
The
\fClogformat, tempformat, dataformat\fR 
and
\fCmaxaddvolumes\fR
options are new configuration-file options; 
they tell the server what volumes to manage.
(Section 5.1, 5.2.2)
.sh 2 "Server Commands"
.lp
The server's terminal interface has been expanded to include these
commands (described in section 5.2.3):
.np
\fClistdistr\fR prints two lists two sets of distributed
transactions: the transactions for which this 
server is the coordinator,
and the prepared transactions for which it is a subordinate server.
.np
\fCprogress\fR toggles the \fCprogress\fR option's value.
.np
\fCuser\fR determines
whether the server will print messages when a user (application) error
is encountered.
.np
\fCsource\fR reads a set of commands from a file.
.np
\fCredirect\fR redirects output to a file.
.np
\fClistmount\fR lists the volumes that are in use.
.np
\fClistvolumes\fR lists the volumes in the mountable-volume table.
.np
\fCaddvolume\fR adds a volume to the mountable-volume table.
.np
\fCrmvolume\fR removes a volume from the mountable-volume table.
.sh 1 "Formatting Volumes"
.lp
Formatting volumes is done differently.
The information regarding the format of a volume
is now given to the formatter through configuration
options, found in a configuration file.
(Section 5.1.5)
.sh 1 "Bugs Fixed"
.lp
All known bugs from V2 have been fixed.
Numerous efficiency improvements have made.
