60 likes | 212 Views
Atlas POOL Replacement. Developer workshop on I/O and persistence evolution LAL, Orsay, 20-22 Feb 2012 Marcin Nowak (PAS BNL). POOL Code Migration. POOL code was migrated into ATLAS offline codebase in Q3 2011 Location: SVN, AtlasCore, Database/APR New requirement files
E N D
Atlas POOL Replacement Developer workshop on I/O and persistence evolution LAL, Orsay, 20-22 Feb 2012 Marcin Nowak (PAS BNL)
POOL Code Migration • POOL code was migrated into ATLAS offline codebase in Q3 2011 • Location: SVN, AtlasCore, Database/APR • New requirement files • 75% of the migration effort spent • Take from POOL only what ATLAS is actually using • Package-level granularity – see next slide • Minimize changes to the files and code • .cpp extensions! • Easier to keep in synch with LCG POOL • Gradual progress instead of big bang approach • Safer and more practical • Migration of tests was tricky (CMT) • Half of the integration tests is gone (no more DataSvc) • All remaining are working and run nightly • but without full automatic results validation • OVAL -> ? Marcin Nowak BNL PAS Group
POOL Packages • Migrated packages POOLCoreStorageSvcRootStorageSvc FileCatalog XMLCatalogPersistencySvcImplicitCollectionCollectionBase RootCollectionRelationalCollectionCollectionUtilitiesTests • Packages not migrated • ObjectRelationalAccessRelationalStorageServiceRulesFileCatalogRelationalFileCatalogLFCCatalogDataSvcCollection Marcin Nowak BNL PAS Group
APR – Athena Integration • New package : Database/APR in AtlasCore • Included in 17.5.0 release and 17.6.0 nightlies • Builds are based on LCG62 releases without POOL • External/AtlasPOOL glue package redirects to APR • Simple and fully transparent for “all” client packages • 3 packages using DataSvc for “trivial” purposes had to be adapted to PersistencySvc • A package importing LCG POOL directly were causing build process to freeze • Python utility loading RootCollection library (dictionary) explicitly had to be modified • In summary: relatively smooth migration • Developing and fixing of APR components much easier and faster now • But lack of any usable Athena release makes this a bit pointless still Marcin Nowak BNL PAS Group
The “old” POOL • “old” POOL code remains in the LCG CVS repository • Still part of LCG60 and LCG61 nightly builds and new releases • LCG61 is used in Athena 17.1.X releases • Repository remains open for as long as ATLAS continues to use LCG61 • POOL and APR code is still identical • We hope to get any necessary ROOT-related fixes to RootStorageSvc from Markus and propagate them to APR • has not happened so far • I am developing Collection packages in APR and porting changes back to POOL • happens frequently • There are no Atlas-specific features introduced to APR yet Marcin Nowak BNL PAS Group
New Possibilities with APR • Things we can do now that APR is part of Athena: • Move/merge TrigCollQuery with CollectionUtilities • Better integration • Easier tag acceptance for releases • Integrate/expose file management (FileManager?) • Collections, THistSvc • Do something about File Catalog • Seems like we treat it more like a nuisance than a useful feature • Integrate/replace Token with Athena/Gaudi navigation • Introduce dataset notion to navigation • Try to remove unused POOL persistency features • Listing for completeness, but not recommending Marcin Nowak BNL PAS Group