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:
- attend LIM, currently every other week on Monday at 2pm.
- Check that the nightly tests of CORAL and COOL pass. Otherwise, create an issue in JIRA and fix the issue.
- Answer emails related to CORAL and COOL.
- Check Jira issues related to CORAL and COOL.
- Run the full suite of tests from time to time (this suite is run whenever a new commit is made in gitlab). Fix the issues if there are any.
- update the list of platforms to run on (rare).
- Handle tickets sent to CORAL / COOL functional element in SNOW (very rare: 16 in the last 8 years).
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)
andWeb frameworks site cool-doxygen (webeos)
here.
- give ownership of the applications called
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:
- for CORAL: script-gitlab-ci.yml.py
- for COOL: script-gitlab-ci.yml.py
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:
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.