The xrootd preload library allows standard POSIX I/O calls to xrootd servered files in stead of calls to the local file system.
The script xrdprel should be used to run a command using the xrootd preload library. The script sets the proper environment variables (LD_LIBRARY_PATH, LD_PRELOAD)
and then executes the provided command. The usage is:
xrdprel [-g] [-h] _command_ _args_ _command_ and _args_ are the user command and and its arguments -h: prints a help -g: use a virtual mountpoint, which means file names starting with /glast/ are assumed to be xrootd files.
The xrdprel is available in the glast xrootd application area:
/afs/slac.stanford.edu/g/glast/applications/xrootd/<REL>/bin
where <REL> is either PROD or TEST. Currently TEST has the most functional preload library.
ls a file:
xrdprel ls -l
Would run ls against a file in xrootd.
ls a file using virtual mount point:
xrdprel -g ls -l /glast/admin/mon_all.tst
This has the same effect as the previous example. The filename /glast/admin/mon_all.tst will automatically resolve to root://glast-rdr//glast/admin/mon_all.tst
Read a fits file
xrdprel -g fverify /glast/mc/ServiceChallenge/obssim_v9r5/ft1/obssim_v9r5-000000_events_0000.fits
The -g option and /glast/... file names must be used with fitsio tools.
The main issue is loading the proper preload library. A 32 bit binary needs the 32 bit preload lib whereas a 64 bit
compilied executable needs a 64 bit version. Right now by default always the 32bit preload library is used, which will cause a failure if running on a 64 bit OS and using 64 bit applications.
The cfitsio package works with the xrootd preload library. How ever, cfitsio decides how to access files depending on there prefix. Files starting with root:// will be open with the rootd (not xrootd) protocol which is not supported by the GLAST xrootd. Therefore, the file names as obtained by the data catalog, have to be stripped of the rootd://glast-rdr/ prefix and the -g option must be used for xrdprel:
xrdprel -g fverify /glast/mc/ServiceChallenge/obssim_v9r5/ft1/obssim_v9r5-000000_events_0000.fits