I would like to create/register global datasets (TDSets) in Proof. So any users can show and get them like:
TFileCollection *oneDset = proof->GetDataSet("/atlas/data/oneDSetName");[/code]
Would you please help instruct how to create/register such global datasets? According to the documentation of TProof::ShowDataSets, it shows both the user’s datasets and global ones.
[quote]void ShowDataSets(const char* uri = “”, const char* optStr = “”)
// Shows datasets in locations that match the uri.
// By default shows the user’s datasets and global ones[/quote]
Sorry for the late reply.
To have the datasets seen (and readable) by any user you have to declare the directory containing the repository as global. To do this you have to use directive xpd.datasetsrc (see root.cern.ch/drupal/content/conf … datasetsrc).
xpd.datasetsrc file url:/data2/dataset-xpd opt:Ar:Av:
For what relates to ‘data’ and ‘sim’ dirs, the original classification foreseen for datasets was by PROOF-group and (unix) user. So to achieve what you would like to do you should create unix-users ‘data’ and ‘sim’ and assign them to PROOF-group ‘atlas’. Now, while having a PROOF-group ‘atlas’ make sense, unix-users ‘data’ and ‘sim’ may not be so natural. This being an obvious use case, we will do something to make it possible without creating these special users.
A possible workaround - used by ALICE - for readonly datasets is to create the datasets as the admin user, the one used to manage the cluster, and then to copy ‘by hand’ the related files to /atlas/data and /atlas/sim .
If this is something that you may want to try I can ask for more details.
So using the directive “xpd.datasetsrc” would enable users to view global datasets. One question remains. There are 2 files “$USER/datasets/dataset.list” and “xrdadmin/datasets/default/xrdadmin/ls.txt”, which contain the absolute path to $dataset.root and $dataset.mksum. Should I also modify them manually? And where should the 2 *.list file go? Please help advise. Thanks.