Presentation is loading. Please wait.

Presentation is loading. Please wait.

Athena/POOL integration

Similar presentations


Presentation on theme: "Athena/POOL integration"— Presentation transcript:

1 Athena/POOL integration
Valeri Fine

2 AthenaPOOL components are components of the Athena framework
From the Atlas “Athena” framework point of view the POOL provides just a new kind of I/O technology. This means the “integration” within Athena means a concrete implementation of Athena Conversion service for POOL-technology first of all. The implementation project was present collaboration Valeri Fine

3 Conversion Process See: Athena. Chapter 15 Converters
AthenaPoolConverter AthenaPoolCnv<T> AthenaPoolCnv<T> AthenaPoolCnvSvc AthenaPoolCnv<T> AthenaPoolAddress Valeri Fine

4 POOL I/O for Athena algorithm
File Catalog (XML) POOL Collection EventHeader (MySQL) Athena Algorithm jobOptions StoreGate C++ class headers AthenaPoolCnvSvc PoolSvc POOL SEAL POOL Db files (ROOT) IService Valeri Fine

5 AtlasPOOL CVS repository
Valeri Fine

6 AtlasPOOL example package
Valeri Fine

7 AthenaPOOL MySQL “collecton” - EventHeader
Valeri Fine

8 Example of the AtlasPOOL collection
Valeri Fine

9 Job option to read /write via POOL
One needs to remember very few things: Define the Athena Conversion service for POOL I/O technology. To do that it is sufficient to include in the jobOption file: #include "$ATHENAPOOLCNVSVCROOT/share/WriteAthenaPool_jobOptions.txt" This is to load and define two POOL-related Athena services: ApplicationMgr.DLLs += { "PoolSvc", "AthenaPoolCnvSvc" }; ApplicationMgr.ExtSvc += { "PoolSvc", "AthenaPoolCnvSvc" }; Define the Athena Converter for each package involved ApplicationMgr.DLLs += { "AthenaPoolExampleLcgDictionaryX" }; where AthenaPoolExampleLcgDictionaryX name of the package user-provided converter share library Provide the StoreGate Stream and the list of the class StoreGate ID’s for those instances of the classes one wants to be written out Stream1.ItemList += {"9876#*" }; Define the POOL Db collection to keep the track about the stored events PoolSvc.Collection = "NewPoolTry"; where "NewPoolTry" is a unique name of the current session in the MySQL Db. and the name of the ROOT file to write these events out. PoolSvc.Output = "SimplePoolFile.root"; POOL collection factory should be provided with the several parameters to describe the various type collections Valeri Fine

10 Read the objects from the POOL
To read the events back one has to load a special implementation of the Athena EventSelector class and the name of the input Db collection. To define the POOL event Selector implementation one can add the include statement #include $ATHENAPOOLCNVSVCROOT/share/ReadAthenaPool_jobOptions.txt" to his/her jobOptions. To define the POOL input collection the statement: EventSelector.InputCollection = "NewPoolTry"; where "NewPoolTry" is a name of the collection one wants to read the events from. The file ID is stored in the Db. By this reason one needs to provide NO file name to read the events back. Valeri Fine

11 Quick Db check The named collection can be seen via from MySql Db. To see the browse the Atlas default Db select "pool_collection" from the drop-down "(databases)" menu and the select the name of your collection. Valeri Fine

12 Conclusion At the moment the fundamental problem of providing a tool to build the class dictionary and object Athena converters automatically solved. The Atlas user can try it and the developer group can assist them to collect the valuable feedback, and provide the feedback to the POOL developers. Even though we may focus on other directions some problems should have been anticipated. Valeri Fine

13 C++ class serialization problem
There are two anticipated problems to be resolved: Not enough SEAL/POOL capability to serialize some particular Athena C++ class: Can be resolved by class redesign Fix SEAL/POOL Internal Athena class design problem caused its transient nature. The original I/O Gaudi paradigm came from the “Objectivity” that implied two hand-written classes, namely persistent class and class converter per each user data-class. Using ROOT-approach, generating automatically the class dictionary directly from its C++ definition eliminates those hand–written classes . However the classes originally were not design to be persistent that may have caused the problem. Valeri Fine

14 How to find the “broken” class
One has to try. It is a simplest way to find out the classes to be adjusted. Conclusion: The current level of implementation allows us to seek the collaboration-wide trial. Valeri Fine

15 Three ways to evolve C++ class serialization problem (I/O and dictionary) – needs the collaboration participation. It is not clear why one is required to provide the list of the class data-members. The LCG OO dictionary is in possession of this infomrstion. Required the user to change “selection.xml” as soon as his /her class evolves. This would have tremendously simplified the user life. POOL Db related problem – just next Athena/POOL integration step to be done. Athena/Pool Optimization Removing the duplicated functionality Selection the proper combination of the Db options POOL provides. These cause no immediate problem. We have time to work out Atlas own proper solution or wait POOL Data Service evolves. Valeri Fine

16 POOL is an OO Db User doesn’t play with any file. The file name is an internal POOL unit and available through the POOL file catalog. The user defines the object he wants to be written out (in term of StoreGate) and the type Db to keep the “event track” (for example MySQL collection name) Questions to be addressed yet: Who allocates the POOL file space and where? How to choose the Db collection name to avoid clashes? Such kind of questions are not new for the Athena. It the same problem we faced to select and assign a unique class id for each class kept in StoreGate. Valeri Fine

17 Thank you. ATLAS team: POOL/LCG team David Adams (BNL) Dirk Dulleman
Christian Arnault Markus Frank Hong Ma (BNL) Ioannis David Melon Torre Wenaus David Quarrie RD Schaffer Alex Undrus Valeri Fine


Download ppt "Athena/POOL integration"

Similar presentations


Ads by Google