Objectivity/DB miscellaneous tests
Last update - 4th August 1999.
Tests
Purpose
A program allows testing Objectivity/DB in following areas:
- how many objects (normal or large) can be created in a single container
- how many small or large objects can be opened at the same time
- how many normal and large objects can be opened at the same time
- how many containers can be created in a single database
- how many containers can be opened at the same time
- how many databases can be created in a federation
- how big a database can be
- what is the maximum read and write performance of Objectivity/DB, either local or remote (with AMS)
Method
Steps required to run the test program:
- Copy all files form /afs/cern.ch/rd45/tests/limits to a new_directory in which you will run it.
- Edit the Makefile to set the desired database page size (default is 32KB)
- Set environment variable OO_FD_BOOT to TEST.
- Set environment variable HEP_ODBMS_DIR
to /afs/cern.ch/sw/lhcxx/specific/@sys/HepODBMS/new
- Compile the program with gmake. The executable name is oolim.
- When you run the program, you will see a list of test options to choose from. Enter the corresponding number (the program will ask about any necessary parameters).
1 - create some Big objects
create a given number of 100KB objects in a single container - objects this size are always larger then a database page
2 - count Big objects
count the objects
3 - open Big objects
try to open as many large objects as possible - known limit is the maximum number of pages in the client cache.
300 - access Big objects
as above, but actually touches the object data
4 - create some obj in container 1K
5 - count 1K objects
6 - open 1K objects
corresponding tests for small objects - size 1KB
8 - count containers
9 - open containers
10 - create containers (not hashed, 10 pages)
corresponding tests for containers
20 - open containers and 1K objects
see how many containers and small objects can be opened at the same time
21 - open 1K objects and Big objects
see how many containers and large objects can be opened at the same time
30 - create 2 GB database
try to create a 2GB database - fill with 100KB objects
31 - create 3 GB database
try to create a 3GB database - fill with 100KB objects
40 - create some 1.5 GB databases (fill with 100k obj)
try to create a 1.5GB database - fill with 100KB objects
41 - create some 1.5 GB databases (specify obj size)
try to create a 1.5GB database - fill with objects of a given size (size can be 2,4,8,16,32,64,120,250 or 100KB)
42 - read some 1.5 GB databases
43 - read one 1.5 GB database
read back the databases - one or more, starting from the first one
45 - create some small databases (fill with 100k obj)
create databases of any size, filling them with 100KB objects
48 - create some databases (specify obj size and DB size)
create a number of databases, all of the same size and filled with objects of the same size. This is the most flexible option and useful for performance measurements.
- The program will ask about all parameters (e.g. object size) interactively. It is also possible to pass all of them on the command line (but you need to know which one are expected)
- If the program finishes successfully it will print timer information, that can be used in performance measurements.
There are 3 numbers in milliseconds, the first one shows real time (others are user and system time).
- The program is based on ooSession class from HepODBMS goodies library. You may use any environmental variables that are recognised by ooSession, like OO_FD_BOOT or OO_NO_LOCK.
- To run a test through network, set the following variables: OO_DB_HOST, OO_DB_PATH, OO_DB_NAME