Usage in ROOT¶
We have also created a davix plugin for ROOT, TDavixFile. It can be used to perform I/O on HTTP, WebDAV or S3.
Installation from EPEL repositories¶
Install root and root-davix
$ sudo yum install root root-net-davix
Enable the davix plugin by default
$ sudo sed -i 's/Davix.UseOldClient: yes/Davix.UseOldClient: no/g' /usr/share/root/system.rootrc
Tune configuration of rootrc with your HTTP parameters. See the available options in Configure TDavixFile.
$ vim /usr/share/root/system.rootrc
Installation from source¶
- Download your favorite version of ROOT from https://root.cern.ch
- Install the dependencies: cmake, openssl-devel, libxml2-devel
- Run
installDavix.sh
which downloads and compiles davix. - Configure ROOT with
--with-davix-incdir
and--with-davix-libdir
indicating the davix installation created byinstallDavix.sh
. Davix should be displayed in the list of “enabled modules” at the end of the configuration step. - Compile ROOT.
Usage¶
Using Davix is completely transparent once installed and configured, just proceed like with any other TFile plugin.
TFile* f = TFile::Open("http://root.cern.ch/files/h1big.root")
Debugging¶
To use ROOT’s logging, increase the gDebug variable level.
$ gDebug = 2
To use Davix’s internal logging, use the Davix.Debug parameter. It can be used independently of gDebug. To display only Davix’s logging infomation, set gDebug to 0 and Davix.Debug to 1-4, with 4 being most verbose. In code:
$ gEnv->SetValue("Davix.Debug", 4);
In system.rootrc:
$ Davix.Debug: 4
Configure TDavixFile¶
TDavixFile can be configured via the system.rootrc file, via ROOT environment variables or via TFile::Open flags at runtime. All configuration parameters are documented inside system.rootrc. Main options:
Feature | ROOT parameter | Value |
---|---|---|
Enable/disable grid authentication support | Davix.GSI.GridMode | y/n |
Enable/disable TLS certificate validity check | Davix.GSI.CACheck | y/n |
Specify S3 authentication tokens | Davix.S3.SecretKey | string |
Davix.S3.AccessKey | string | |
Specify user x509 credentials in PEM format | Davix.GSI.UserCert | filepath (string) |
Davix.GSI.UserKey | filepath (string) | |
Specify VOMS proxy to use | Davix.GSI.UserProxy | filepath (string) |
Define log verbosity | Davix.Debug | integer (1-4) |
Running HTTP ROOT TDavixFile Benchmarks¶
Check this repository: https://github.com/cern-it-sdc-id/tdavixfile-bench-tools.git