You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Overview

The HPS conditions database contains time-dependent detector information for use by reconstruction and analysis software.  The primary database is hosted at JLAB and there is a replicated copy of it that also runs at SLAC.  The JLAB database is accessible only internally within jlab.org whereas the SLAC one is public.  Should you want to run the HPS software without an internet connection, then this database needs to be installed locally.  These instructions will cover how to install MySQL on your machine, configure a database and the accounts for HPS, replicate the JLAB database to your machine, and finally how to configure the software to use this database rather than the default one.

Setting Up MySQL

The exact details of installing the MySQL client and server will not be covered in great depth, but complete instructions can be found in the MySQL documentation itself, e.g. MySQL Linux Installation.

For instance, on Redhat using yum, you would start by installing the necessary packages.

yum install mysql-server mysql

The server should then be started.

service mysqld start

You should login as the root user.

mysql -u root

And then the root password should be set for localhost.

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new-password');
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('new-password');

The root account is like the Unix "superuser" with complete privileges on all databases, so take care as to how this account is configured for security.  In general, you should prefer to use other accounts for your local work, but root can be used for operations such as creating new databases.

Setting Up the HPS Database and User Accounts

From the root account, you should create the (initially empty) database for the conditions system from the console after the initial installation.

mysql> create database hps_conditions;

You should also create a read-only account that will be used to run jobs.

CREATE USER 'hpsuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT SELECT ON hps_conditions.* TO 'hpsuser'@'localhost';

The restricted hpsuser account will be used to run local reconstruction or analysis jobs, but it will not have any privileges to change the database.

Creating a Database Dump

You must acquire a SQL dump from the JLAB database which will be loaded locally.

You will need to be logged into a JLAB machine like jlabl3 for this step. 

In order to do this you must also have a MySQL account with the correct privileges, or you must ask one of the HPS database administrators to create this file for you.

mysqldump -h jmysql.jlab.org -ujeremym -pXXXXXXXX --disable-lock-tables hps_conditions &> jlab_conditions_db.sql

The -u argument should have the actual database user account and the -p argument must specify the password.

Now the file jlab_conditions_db.sql should contain a complete copy of the table structure and all the data in SQL format.

Loading the SQL File

Next, assuming you have transferred the SQL file to your local computer, you can use the command line tool to load it into a local database.

mysql -D hps_conditions -h localhost -P 3306 -u root -pXXXXXXXX < jlab_conditions_db.backup.sql

Now the JLAB database should be installed on your computer.

Using the Local Database

The local database will not be used by default.

You need to create a config file e.g. local.prop with the connection parameters in it.

user: hpsuser
password: XXXXXXXX
database: hps_conditions
hostname: localhost

Finally, a Java system property needs to be set when you run any of the command line tools for HPS.

java -Dorg.hps.conditions.connection.file=local.prop -cp ~/.m2/repository/org/hps/hps-distribution/3.1-SNAPSHOT/hps-distribution-3.1-SNAPSHOT-bin.jar [args]

or if using a runnable jar

java -Dorg.hps.conditions.connection.file=local.prop -jar ~/.m2/repository/org/hps/hps-distribution/3.1-SNAPSHOT/hps-distribution-3.1-SNAPSHOT-bin.jar [args]

In the log messages printed out with the job, you should see something like the following.

Thu Jan 22 13:18:33 PST 2015 :: DatabaseConditionsManager :: INFO :: opening connection to jdbc:mysql://mysql-node03.slac.stanford.edu:3306/
Thu Jan 22 13:18:33 PST 2015 :: DatabaseConditionsManager :: INFO :: host mysql-node03.slac.stanford.edu
Thu Jan 22 13:18:33 PST 2015 :: DatabaseConditionsManager :: INFO :: port 3306
Thu Jan 22 13:18:33 PST 2015 :: DatabaseConditionsManager :: INFO :: user rd_hps_cond_ro
Thu Jan 22 13:18:33 PST 2015 :: DatabaseConditionsManager :: INFO :: database rd_hps_cond
Thu Jan 22 13:18:33 PST 2015 :: DatabaseConditionsManager :: INFO :: connection opened

The actual settings printed there should match the ones for your local database.

Guidelines for Usage

In general, you should prefer not to make a alterations or additions to the local database.  These procedures are instead designed for running reconstruction and analysis without an internet connection on your local machine.  Any official changes to be used in production, such as recon passes run at JLAB, must be made on the JLAB database through the HPS database administrators.  So in order for others to use any conditions you might like to add to the system, the best approach will be adding that information to the primary database and replicating it to the public SLAC database, rather than having others connect directly to your database instance.

  • No labels