aquila: Partial Behavioural Specification
for the Textual Version of the ACEDB Database Management System
aquila is a perl-based benchmarking program for ACEDB. It can
be set up to run the tace binary of ACEDB under different machine or code
conditions. The program goes through a series of preset test routines and
reports on CPU time, speed, and memory utilization. The main purpose of the
default test routines are to look for errors in the ACEDB program; it
rigorously tests ACEDB. For new curators, it also
serves as a tool to learn ACEDB data loading and query syntax by studying the test routines. This program was developed
by Detlef Wolf and updated by Jean Thierry-Mieg.
The following are steps for running aquila:
-
Download in binary format the aquila.avr97.tar.gz file to a specified directory
(i.e. $DIR/aquila).
-
Unpack the gzipped file within the specified with the command:
"gunzip -c aquila.avr97.tar.gz | tar xvf -"
-
Create a test directory within the specified directory for your test conditions
(i.e. $DIR/aquila/testmachinename).
-
Create a /bin directory within your test directory (i.e. $DIR/aquila/testmachinename/bin).
-
Create a link from the /bin directory to the tace binary that you wish
to test (i.e. ln -s /myacedb/bin/tace $DIR/aquila/testmachinename/bin/tace).
-
Go to the aquila diectory and start your test by typing:
"aquila testmachinename"
-
After test is completed, view results in the file named testmachinename.oneresult
Note: The initial test may fail if you are not running perl 5.003 or better or if the $DIR/aquila/testmachinename/wspec/passwd.wrm file created by the aquila program does not have your userid placed in the file (simply edit this file and re-try).
Note: If aquila has been run for different versions of ACEDB, the results can be compared by typing:
"aquila testone testtwo"
The complete test may take a few minutes up to 30-45 minutes, depending on the
machine (see the aquila benchmark results.
Results for one test can be compared to results run from a differently
compiled binary or a binary setup on another machine. More information about
the tests can be found in the $DIR/aquila/config/scripts file. Some the
tests conducted by the script are summarized below:
-
tagvqry: queries on values after tags
-
newname: Construct a new name according to C-language printf (format,n)
-
stacksiz: test object with links to 10000 other objects
-
escape: in .ace data characters can be escaped using \
-
longline: parse medium lines from .ace file
-
longl1MB: parse very long lines from .ace file
-
dblslsh: doubleslash starts comments up to the end of a line
-
dblqot: double quotes in data and names and queries
-
nnmqry: queries for objects whose name is a number
-
abnmqry: find M "<someth>" should find the M object called <someth>
-
grep: text search in object names and long texts
-
parsstop: consistency in loading erroneous data
-
ppcont: loading erroneous data with pparse
-
emptyo: referential integrity when deleting objects
-
qcount: query with COUNT
-
intag: only leaf tags of a model tree in .ace data are dumped
-
list: the command list shows the contents of the active keyset
-
xrefct: XREF and constructed types
-
followct: query that uses follow into a constructed type: follow
A#B
-
ctdel: delete data within constructed-type part of an object
-
nestcoq: queries after values of recurively constructed types are
possible
-
atqry: data can be dynamically attached to objects by queries
-
aqdump: attached queries work in the IGD model
-
cttab: constructed types and parameter passing in table definitions
-
tables: some tests on complex tables
-
alias: giving alias names to objects, evenutally fusing objects
-
clacse: class names are consistently case-insensitive
-
parsubq: parameter substitution in queries in complex cases
-
anyxref: XREFs into ANY tags work and ANY data cannot be loaded
-
crashq: an evil query crashes tace
-
ocount: classes command shows number of alive object in class
-
rclass: model command does not work for renamed classes
-
cnstrain: constraints should be evaluated when loading data
-
parseat: parse the @ sign in longtexts correctly
-
help: "help query" shows query help text