Prerequisites
This version of the Skoll client is designed for Unix-style systems
and depends on a couple software packages.
- Java Virtual Machine: Any compliant Java Virtual Machine (http://www.java.com/)
- GCC: GNU Compiler Collection (http://www.gnu.org/order/ftp.html)
- GNU Autotools: gmake, autoconf, m4, etc. (http://www.gnu.org/order/ftp.html)
- Bazaar: Version control system used by MySQL development team (http://bazaar-vcs.org/)
Obtaining and installing the MySQL/Skoll Client:
- First, go to http://www.cs.umd.edu/projects/skoll/contribute/ and download the current version of MySQL/Skoll Client. The client package is distributed as gzipped tar ball file.
- Next, extract the client files from the package, using the following command:
% tar xvzf skoll-x.x.x.tgz
This will create a directory called skoll in the current working directory. - Confirm that the skoll directory contains the following three items:
- changelog: This file contains the change history of the MySQL/Skoll Client.
- start: This is a shell script that executes the Java MySQL/Skoll Client.
- SkollClient.jar: The Java Skoll Client application.
- util: This directory contains libraries and utilities needed by the MySQL/Skoll Client.
- Customize your client by setting the following variable in the start script
- START_PATH: The path to any and all tools necessary to compile MySQL. Specifically: gcc, make, and bzr should all be in the path listed here.
Running MySQL/Skoll Client:
Run the MySQL/Skoll Client using the following command
% ./startThe script will trace client execution through four major stages:
- Downloading latest MySQL source code from Bazaar repository.
- Compiling MySQL.
- Running tests on the compiled executables.
- Sending execution log back to Skoll server.
Scheduling the MySQL/Skoll Client for periodic execution:
The skoll client is meant to be run periodically (as system workload allows). The simplest method of automatically invokling skoll is to run it periodically using cron. Since the execution time of a test suite varies with a number of factors, we have included a script (util/skoll_cron.sh) that ensures only one instance of skoll is running at a time. Users can invoke this script as often as desired, but a new test job will only start if previous jobs are not running.
To schedule MySQL/Skoll Client for periodic execution, run the command:
% crontab -eAn editor window will appear, allowing you to enter the appropriate job. Here are some example crontab entries:
- Attempt to run Skoll every 15 minutes:
0-59/15 * * * * [path to MySQL/Skoll Client]/util/skoll_cron.sh 1>& /dev/null
- Attempt to run Skoll every hour:
0 * * * * [path to MySQL/Skoll Client]/util/skoll_cron.sh 1>& /dev/null
- Attempt to run Skoll every 2 hours:
0 0-23/2 * * * [path to MySQL/Skoll Client]/util/skoll_cron.sh 1>& /dev/null
- Attempt to run Skoll every night at 2am:
* 2 * * * [path to MySQL/Skoll Client]/util/skoll_cron.sh 1>& /dev/null
% crontab -l
Viewing Test Results:
For this process, we are interested in understanding where configuration-related bugs might be hiding. To figure this out, we periodically analyze test results by models of failing test cases. These models try to express the options and their specific settings that lead to test failures. Users can see the results of this analysis http://www.cs.umd.edu/projects/skoll/results/mysql51/.
The Skoll team thanks you for your participation. Please send any comments or questions to skoll@cs.umd.edu. Thanks again!