LCG-Application Area
SPI: Software Testing

POOL  

Test Case

 July 29, 2003


Case: Collection_ExplicitReadPerformance

Component

Author

Date

Version

 

Collection

Jakub Moscicki, Helmut Schmucker, Kristo Karr

07-29-03

1.0.0

Test Case Description:

 

Program designed to:

 

  • Perform timing measurements of queries on collections using their associated meta data.
  • Compare the performance of various tasks applied to the data satisfying the queries.
  • Compare the performance for queries of different types of persistent collections (e.g.  Root and MySQL)

 

Pre and Post Conditions

 

Existence of at least 2 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"

·        Existence of a file with suffix pool containing the collection’s persistent data.

·        Existence of a file called PoolFileCatalog.xml containing database file identification information.

·        Existence of 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.

·        Creation of a file (called Test_Read.log by default) containing a detailed list of the performance data.

Test Procedure

 

 

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

          % cd $MyPoolArea/src

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

 

  • Compile and link the package

               % scram build

:

  • Enter the package directory:

               % cd Tests/Collection_ExplicitReadPerformance

 

  • 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)> [Task to perform on query results: 0=empty loop, 1=type check, 2=create Ref<T>, 3=dereference Ref<T>, 4=read attribute list, 5=convert Ref<T> to string DEFAULT=0] [name of performance data output file DEFAULT = Test_Read.log] [selection query DEFAULT = “”] [iterator options: FetchOne (use cache) or FetchAll (do not use cache) DEFAULT = FetchAll] [benchmark options: attribute_list_constructor (create attribute list from iterator for every event) or pause (wait for a key before doing the benchmark) DEFAULT = “”]

 

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

 

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

Expected results

The following file will be produced:

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

1.      Total number of events and attributes of collection used

2.      Number of events that satisfy the query.

3.      Time (in milliseconds) to create the iterator for events satisfying the query.

4.      Time (in milliseconds) to iterate over the events satisfying the query.

5.      Total time (in milliseconds).

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