Skip to content

WORK IN PROGRESS#


CORAL and COOL#

CORAL and COOL are 2 projects that address the data access requirements of the LHC experiments in several different areas. The project is the result of the collaboration between the CERN IT Department and the three LHC experiments (ATLAS, CMS, LHCb) that were using some or all components to access their data. It is now only used by ATLAS.

CORAL is an abstraction layer with an SQL-free API to access data stored using relational database technologies. It is used directly by experiment-specific applications and internally by COOL.

COOL provides specific software components and tools for the handling of the time variation and versioning of the experiment conditions data.

Content of this documentation#

This documentation provides information on how to use CORAL and COOL, and how to maintain these projects. You may use the menu in the left bar to navigate hierarchically through all topics.

Old website#

This documentation is based on the one on twiki made by Andrea Valassi.

This Twiki, created in June 2010, was meant to replace the three older web sites specific to CORAL, COOL and POOL, as well as the more recent Persistency web site on Drupal, updating and merging into a single web site the vast amount of information that was previously scattered there.

Action List#

The following is a list of responsibilities for the maintainers of CORAL and COOL. You need to:

Hand over to ATLAS#

During the hand over to ATLAS, a number of resources will need to be reassigned from Charles Delort to the new maintainer:

  • the git repositories of CORAL and COOL.
    • Set the new owner here.
  • the test schemas in ORACLE and MySQL.
  • the VMs used to perform the tests of CORAL and COOL in project "ATLAS CORAL Server".
  • /eos/user/c/cdelort/coral-cool-auth: this folder contains connection strings and passwords to connect to oracle and mysql schemas used for testing.
  • the websites for coral and cool documentations: Doxygen for CORAL and Doxygen for COOL and this documentation.
    • give ownership of the applications called Web frameworks site coral-doxygen (webeos) and Web frameworks site cool-doxygen (webeos) here.

How to install, run tests, use CORAL and COOL#

In order to fix bugs, we need to build and install CORAL and/or COOL.

Once the projects are built and installed, we can run the tests included in the project.

If needed, you can setup a new gitlab-runner.

The doxygen documentation can be accessed here for CORAL and here for COOL. To create/update this documentation please follow this.

What to do when platforms are added or removed.#

When platforms are added or removed from the nightlies, a few things are needed on CORAL/COOL side.

Add platform_hashes for CORAL#

To prevent multiple tests accessing the same tables, a platform hash has been added for CORAL tests. Every time a new platform is added, you should add it to the platform hash, otherwise the tests will fail for this particular platform.

Update the CI/CD#

You should update and run the following scripts:

vi script-gitlab-ci.yml.py
# update the platforms variable
python3 script-gitlab-ci.yml.py
# recreates .gitlab-ci.yml

And then commit the changes (script-gitlab-ci.yml.py and .gitlab-ci.yml). This will update the platforms for gitlab's CI/CD:

git add script-gitlab-ci.yml.py .gitlab-ci.yml
git commit -m"new platforms XXX YYY"
git push

Increase version number and create a new tag#

When the time has come to increase the version of CORAL and COOL, there are a few things to do:

  • increase the version number in the VersionInfo.h file:
  • create a new tag for CORAL and for COOL

Communicate with EP-SFT to change the tag used in dev4. You can make a PR to change these lines, but they also have to upload the sources for the new version, so the PR isn't enough.