LCG-Application Area
SPI: Software Testing

POOL  

Test Case

 July 29, 2003


Case: Collection_ExplicitWritePerformance

Component

Author

Date

Version

 

Collection

Kristo Karr

07-29-03

1.0.0

Test Case Description:

 

Program designed to:

 

  • Test the performance and scalability of the write and update functionality of the POOL collections and meta data packages.
  • Generate collections and meta data needed by performance and scalability tests of the read and query functionality of the collections and meta data packages (e.g. Collection_ExplicitReadPerformance).
  • Perform stress tests on collection and meta data list size.
  • Perform memory leak checks on collections and meta data specific code.
  • Compare the efficiencies for writing to different types of databases (e.g. MySQL vs. Root).

 

Pre and Post Conditions

 

Creation or overwrite of 3 to 4 files in the present directory (see below).

Input/Output Specifications

·        Possibility of changing the following two environment variables before running, by editing the file pool.env:

1        POOL_OUTMSG_LEVEL: Only program monitoring information with a SEAL message level greater than the value of this variable will printed to the screen. Possible options are:

·         -1 => seal::MSG::NIL

·         0 => seal::MSG::VERBOSE

·         1 => seal::MSG::DEBUG

·         2 => seal::MSG::INFO

·         3 => seal::MSG::WARNING

·         4 => seal::MSG::ERROR

·         5 => seal::MSG::FATAL

The default value of POOL_OUTMSG_LEVEL is 2

2        POOL_MYSQL_CONNECT: This is the location of the MySQL database being used. It is useful to change this variable to a local location if, for instance, network speeds are of significant concern. The default value of POOL_MYSQL_CONNECT is  "mysql://regrTester:rT2003@lxshare070d.cern.ch/regression"

·        Creation (or overwrite if it already exists) of a file with suffix pool (the rest of the name is set by the user on the command line as described below) containing the collection’s persistent data.

·        Creation (if it does not exist) of a file called PoolFileCatalog.xml to store database file identification information.

·        Creation of a local file (e.g. when creating a Root collection) or a database table (e.g. when creating a MySQL collection) containing the collection of data object references and associated meta data.

·        Creation (or overwrite if it already exists) of a file called Test_Write.log (default name can be changed at runtime)containing a detailed listing of the performance data.

Test Procedure

 

 

  • Enter the src directory of your local POOL project area and check out the Collection_ExplicitWritePerformance package from the POOL CVS repository:

          % cd $MyPoolArea/src

    % cvs co –r POOL_<latest release tag> Tests/Collection_ExplicitWritePerformance

 

  • Compile and link the package

               % scram build

:

  • Enter the package directory:

               % cd Tests/Collection_ExplicitWritePerformance

 

  • Setup the SCRAM runtime environment variables (change csh to sh for Bash shell):

               % eval `scram runtime –csh`

               % eval `scram runtime –csh pool.env`

               % rehash

 

  • Run the executable:

          % test_Collection_ExplicitWritePerformance <collection name prefix> <number of events> <number of attributes> <collection type (MySQL or Root)> [name of performance data output file DEFAULT = Test_Write.log] [number of events to append] [number of events to process before next print to screen DEFAULT=1000] [number of events to process before next collection commit DEFAULT=1] [printout units (seconds, millisec, microsec, or nanosec) DEFAULT=millisec] [random seed integer for meta data generation DEFAULT=7232003]

 

Note: To see a screen printout of the above command line options simply type test_Collection_ExplicitWritePerformance with no options.

 

Note: Any optional argument may be masked out with the – char.

Expected results

The following files will be produced:

  • A file (called Test_Write.log by default)  which contains the following information:

1.      Total time to create a collection.

2.      Average time to mark a data object for writing

3.      Average time to fill a data object’s meta data values.

4.      Average time to add a data object and its associated meta data to the collection.

5.      Average time to commit to the collection the changes described in 2. to 4. above.

6.      Total time to close the collection.

  • A file called <collection prefix>_<# of events>_<# of attributes>_<collection type>.pool which contains the collection’s persistent data.
  • A local file (e.g. in the case of a Root collection) or a database table (e.g. in the case of a MySQL collection) containing the collection of data object references and associated meta data.

Failure Recovery

In the event of a program crash please submit a bug report to the POOL project via the Savannah Portal at http://savannah.cern.ch/

Comments

 

 

 


Template version: TEST_testcase-template-00.01 (Draft)
Fri May 16
10:15:58 CEST 2003