SlideServe
Menu
Préférences
© SlideServe · v2026

ROOT Data Bases Access Deployment Workshop

cflinn avatar
10 diapositives · 144 Views · Jan 04, 2020

Learn about different data base deployment techniques in ROOT, including file types, access methods, and the new RDBMS interface. Explore goals, optimization, syntax, and support for TBranchElement. Delve into Oracle configuration and CBM analysis.

ROOT Data Bases Access Deployment Workshop - slide 1
01 / 10ROOT Data Bases Access Deployment Workshop
1 / 17

Télécharger la présentation

ROOT Data Bases Access Deployment Workshop
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. ROOT Data bases access LCG Data base deployment workshop 11 October René Brun CERN ROOT Data bases access

  2. File types & Access in 4.04/xx user Local File X.xml TFile TKey/TTree TStreamerInfo TSQLServer TSQLRow TSQLResult http rootd/xrootd Oracle Local File X.root MySQL Dcache Castor PgSQL RFIO Chirp SapDb ROOT Data bases access

  3. File types & Access in 5.04/xx user Local File X.xml TTreeSQL TFile TKey/TTree TStreamerInfo TSQLServer TSQLRow TSQLResult http rootd/xrootd Oracle Local File X.root MySQL Dcache Castor PgSQL RFIO Chirp SapDb ROOT Data bases access

  4. New RDBMS interface: Goals • Access any RDBMS tables from TTree::Draw • Create a TTree in split mode •  creating a RDBMS table and filling it. • The table can be processed by SQL directly. • The interface uses the normal I/O engine • including support for Automatic Schema Evolution. ROOT Data bases access

  5. TTree with SQL database back-end • Uploaded in CVS repository of first version of TTreeSQL • support the TTree containing branches created using a leaf list (eg. hsimple.C). • Add an interface to read the proper TTree object depending on the backend • Something like TTree::Open using the Plugin Manager • Extend TTreeSQL to support TBranchElement • Implement proper schema evolution support • The main design problem is how to save/retrieve the TProcessID/TStreamerInfo. • One possibility is to use the same mechanism currently in use in TXMLFile ntuple->Branch("main",&mytest,"px/D:py/F:pz:random:i/I:c/B"); ntuple->Branch("string",(void*)str,"str/C"); ROOT Data bases access

  6. TTreeSQL Syntax • Currently: • ROOT: • MySQL: • Coming: TFile *file = new TFile("simple.root","RECREATE"); TTree *tree; file->GetObject(“ntuple”,tree); TSQLServer*dbserver = TSQLServer::Connect("mysql://…”,db,user,passwd); TTree *tree = new TTreeSQL(dbserver,"rootDev","ntuple"); TTree *tree = TTree::Open(“root:/simple.root/ntuple”); TTree *tree = TTree::Open(“mysql://host../rootDev/ntuple”); ROOT Data bases access

  7. TTreeSQL Optimization • On a simple test with a local MySQL database: • Reading is 5x slower than with ROOT I/O • Writing is functional but requires significant optimization of the code. • Current implementation of the SQL communication (text oriented) could be greatly improved. • Could use some expertise in MySQL and odbc (to reinvigorate RDBC) ROOT Data bases access

  8. Support for TBranchElement • Will add the creation of auxiliary tables • table of TStreamerInfos • Will add support for ‘blob’ data field to support unsplit object. • Will need support for ‘collection’ • either by using additional ‘linked’ tables • either by using ‘blob’ data field Plan before the ROOT workshop ROOT Data bases access

  9. Oracle Configuration, Parameters, Geometry CBM Analysis ROOT Root files MCPoints, Hits, Digits, Tracks Geometry Manager Virtual MC IO Manager GeoInterface Run Manager RunTime DataBase Module Primary Generator Magnetic Field Detector Root files Configuration, Parameters, Geometry Tasks EVGEN Delta digitizers Tracking ROOT Data bases access

  10. Reading Parameters: Oracle • gSystem->Load ( "libOra" ); • CbmRunAna * fRun = new CbmRunAna(); • CbmRuntimeDb* rtdb=fRun->GetRuntimeDb(); • CbmParOraIo* ora=new CbmParOraIo(); • ora->open(); • rtdb->setFirstInput(ora); • CbmGenericParOraIo* genio= • (CbmGenericParOraIo*)(ora->getDetParIo("CbmGenericParIo")); • CbmParTest* par=(CbmParTest*)(rtdb->getContainer("CbmParTest")); • genio->readFromLoadingTable(par,RunId); • par->print(); • par->printParams(); ROOT Data bases access