Compare commit times on SGI and ALPHA
A database with 350'000 objects is loaded under identical conditions on
an SGI IRIX Release 6.2 and an ALPHA Digital UNIX V4.0.
On both systems, the harddisks are locally mounted. Under usual circumstances,
the ALPHA outperforms the SGI by a factor of 2.
Total commit time
The total commit times in real time are given in the table below. The same
data is loaded on both machines, committing after 10000 and 20000 objects.
A special loading procedure is used on the ALPHA where after 30000
committed objects the program exits and is restarted using a shell script.
The expected commit time for the ALPHA would be 35 minutes. This performance
is really achieved using this mechanism. It is a silly thing, though,
having to exit and restart the program and one looses capability to
keep information over the total loading time.
ALPHA 10000 with restart
Commit times during load
In the chart below are the commit times in seconds/object. Our data to
load is coming in 535 tables, each table containing 500-1000 objects. These
objects are large and lots of associations are being generated. A commit
occurs after a certain table number is loaded, depending whether the limit
(10000 or 20000 objects) has been reached and the time/object is displayed.
On the SGI, the behaviour is as expected: the commit time seems only
to be depending upon the number of objects committed.
On the ALPHA, the commit time seems to be correlated to the total number
of objects loaded so far. Since the IDENTICAL c++ code is running on both
machines, this cannot be due to a program error and the times are measured
by timing the commit() call only.
The restart-procedure gives the expected behaviour. It is as if Objectivity
fails to clean up properly after a commit() on the ALPHA.
The output of ooRunStatus (click to see a
comparative sheet) looks almost identical for both machines. The only difference
is in the parameters
number of containers opened
number of containers closed
The loading is done using the ooNewConts macro to generate an array
of new containers which are named later.