Developer workshop on I/O and persistence evolution LAL,Orsay, 20-22 Feb 2012 Marcin Nowak (PAS BNL) Extended T/P Converters.

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming
Advertisements

Introduction to Java 2 Programming Lecture 10 API Review; Where Next.
AHRT: The Automated Human Resources Tool BY Roi Ceren Muthukumaran Chandrasekaran.
Chapter Four Data Types Pratt 2 Data Objects A run-time grouping of one or more pieces of data in a virtual machine a container for data it can be –system.
CSE 425: Semantics II Implementing Scopes A symbol table is in essence a dictionary –I.e., every name appears in it, with the info known about it –Usually.
25 th March 2003 V.Fine, H.Ma CHEP 2003, San Diego 1 Root Based Persistency in Athena (ATLAS) by Valeri Fine and Hong Ma.
CS 106 Introduction to Computer Science I 11 / 26 / 2007 Instructor: Michael Eckmann.
XML Parsing Using Java APIs AIP Independence project Fall 2010.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Chapter 10 Classes Continued
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 18 Object Database Management Systems.
Apache Chemistry face-to-face meeting April 2010.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
XAOD persistence considerations: size, versioning, schema evolution Joint US ATLAS Software and Computing / Physics Support Meeting Peter van Gemmeren.
Framework for track reconstruction and it’s implementation for the CMS tracker A.Khanov,T.Todorov,P.Vanlaer.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
MARCH 27, Meeting Agenda  Prototype 1 Design Goals  Prototype 1 Demo  Framework Overview  Prototype 2 Design Goals  Timeline Moving Forward.
CHAPTER 14 USING RELATIONAL DATABASES TO PROVIDE OBJECT PERSISTENCE (ONLINE) © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database.
SAX Parsing Presented by Clifford Lemoine CSC 436 Compiler Design.
Polymorphism, Inheritance Pt. 1 COMP 401, Fall 2014 Lecture 7 9/9/2014.
Predefined Classes in Java Ellen Walker CPSC 201 Data Structures Hiram College.
ATLAS Peter van Gemmeren (ANL) for many. xAOD  Replaces AOD and DPD –Single, EDM – no T/P conversion when writing, but versioning Transient EDM is typedef.
Andrew S. Budarevsky Adaptive Application Data Management Overview.
CSE 425: Data Types I Data and Data Types Data may be more abstract than their representation –E.g., integer (unbounded) vs. 64-bit int (bounded) A language.
Domain and Persistence Patterns. Fundamental Pattern Types Design Patterns Business Logic Patterns.
The Factory Patterns SE-2811 Dr. Mark L. Hornick 1.
CS 153: Concepts of Compiler Design August 26 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak
XML Data Distribution Platform
SE-1020 Dr. Mark L. Hornick 1 Inheritance and Polymorphism.
CHEP /21/03 Detector Description Framework in LHCb Sébastien Ponce CERN.
آرمان حسين‌زاده آذر  Access to data varies depending on the source of the data.  Access to persistent storage, such as to a database, varies greatly.
CPSC 252 The Big Three Page 1 The “Big Three” Every class that has data members pointing to dynamically allocated memory must implement these three methods:
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
The POOL Persistency Framework POOL Project Review Introduction & Overview Dirk Düllmann, IT-DB & LCG-POOL LCG Application Area Internal Review October.
STAR Event data storage and management in STAR V. Perevoztchikov Brookhaven National Laboratory,USA.
Object-Oriented Programming Chapter Chapter
NOVA A Networked Object-Based EnVironment for Analysis “Framework Components for Distributed Computing” Pavel Nevski, Sasha Vanyashin, Torre Wenaus US.
Object Oriented Programming
STAR Schema Evolution Implementation in ROOT I/O V. Perevoztchikov Brookhaven National Laboratory,USA.
INFSO-RI Enabling Grids for E-sciencE Ganga 4 – The Ganga Evolution Andrew Maier.
PROGRAMMING IN C#. Collection Classes (C# Programming Guide) The.NET Framework provides specialized classes for data storage and retrieval. These classes.
CHEP /21/03 Detector Description Framework in LHCb Sébastien Ponce CERN.
Jean-Roch Vlimant, CERN Physics Performance and Dataset Project Physics Data & MC Validation Group McM : The Evolution of PREP. The CMS tool for Monte-Carlo.
Some Ideas for a Revised Requirement List Dirk Duellmann.
Advanced Object-oriented Design Patterns Creational Design Patterns.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Inheritance and Class Hierarchies Chapter 3. Chapter Objectives  To understand inheritance and how it facilitates code reuse  To understand how Java.
The Object-Oriented Database System Manifesto Malcolm Atkinson, François Bancilhon, David deWitt, Klaus Dittrich, David Maier, Stanley Zdonik DOOD'89,
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Dictionary and POOL Dirk Duellmann.
Overview of C/C++ DB APIs Dirk Düllmann, IT-ADC Database Workshop for LHC developers 27 January, 2005.
1 C# - Inheritance and Polymorphism. 2 1.Inheritance 2.Implementing Inheritance in C# 3.Constructor calls in Inheritance 4.Protected Access Modifier 5.The.
1 Chapter 8 Class Inheritance and Interfaces F Superclasses and Subclasses  Keywords: super F Overriding methods  The Object Class  Modifiers: protected,
Summary of persistence discussions with LHCb and LCG/IT POOL team David Malon Argonne National Laboratory Joint ATLAS, LHCb, LCG/IT meeting.
Event Management. EMU Graham Heyes April Overview Background Requirements Solution Status.
Next-Generation Navigational Infrastructure and the ATLAS Event Store Abstract: The ATLAS event store employs a persistence framework with extensive navigational.
DOMAIN DRIVEN DESIGN Dave 12 May WHAT IS DDD? Set of principles to aid in building complex systems Enables us to focus on core problem domain NOT.
ESO - Garching 08 – 09 March, st ALMA Common Software Workshop XML « Data by Value » Transport.
POOL Based CMS Framework Bill Tanenbaum US-CMS/Fermilab 04/June/2003.
Mini-Workshop on multi-core joint project Peter van Gemmeren (ANL) I/O challenges for HEP applications on multi-core processors An ATLAS Perspective.
New Technology: Why, What ,How
Object-Oriented Databases
POOL persistency framework for LHC
Magento Technical Guidelines Eugene Shakhsuvarov, Software Magento
Chapter 12 Outline Overview of Object Database Concepts
ADO.NET Entity Framework Marcus Tillett
LHCb Detector Description Framework Radovan Chytracek CERN Switzerland
LHCb Detector Description Framework Radovan Chytracek CERN Switzerland
Presentation transcript:

Developer workshop on I/O and persistence evolution LAL,Orsay, Feb 2012 Marcin Nowak (PAS BNL) Extended T/P Converters

T/P Converters Implemented in /Database/AthenaPOOL/AthenaPoolCnvSvc  Basic T/P converter  A simple method converting data between Transient and Persistent representations 1 – 1 direct conversion stateless  Independent of any framework Unless dependency is required by the conversion process Dependency on the transient store Unfortunately has MessageSvc as parameter (in the default interface)  Simple and easy concept, but problematic for: Polymorphism Schema evolution of complex types (chain effect!)  T/P EDM Separation was introduced for Schema Evolution Orsay 21/2/2012Marcin Nowak BNL 2

Evolution of Converters Orsay 21/2/2012Marcin Nowak BNL (PAS) 3 AthenaPoolCnv T Object Store T POOL T->P P->T AthenaPoolCustCnv P Object Store T POOL T->P N P 2 ->T P N ->T P 1 ->T AthenaPoolCustomCnv PNPN P 1,2..N Object Store T POOL

TLP Converters Top Level T/P (TLP) converter: AthenaPoolTopLevelTPConverter  Aggregation of basic T/P converters  Manages conversion process Persistent types used only in declarations, never in the code Provides automatic choice of basic T/P converters Enforces uniform API in basic converters Type safe conversion Supports polymorphism and eliminates schema evolution chain effect Owns the persistent object Therefore has state  Still 1 – 1 conversion  No additional dependencies (!) Using 2 predefined persistent types from AthenaPoolUtilites  Extending TLP converters invented to handle cross-package polymorphism Orsay 21/2/2012Marcin Nowak BNL 4

Extending TLP Converters  (it is the same converter type, only extensions are not always used)  The principal TLP converter can be extended with other TLP converters  Extending enlarges the combined set of types that the converter understands  But each converter has its own persistent object (storage object)  Resulting in 1 (transient) – N (persistent) objects conversion  The extra persistent objects don’t have any corresponding StoreGate objects  They need fake AthenaPool converters as their interface/anchor to the I/O framework  The principal TLP object stores navigational information for extending objects  In a string format  Nesting foreseen but never fully implemented  Management of the extending TLP converters is in the AthenaPoolCnv layer  T/P conversion layer does not depend on AthenaPool  but TLP converter management layer is in AthenaPool  needs to be reimplemented if moving to a different I/O framework Orsay 21/2/2012Marcin Nowak BNL 5

AthenaPoolCnv Layer Responsibilities  Extended TLP converter management : AthenaPoolCnvTPExtension Self-contained, no dependencies  Specialization of AthenaPoolCustomCnv: T_AthenaPoolExtendingCnv  Connects extensions at initialization runtime Dependencies needs to be explicitly added in the principal AthenaPool converter  On the AthenPool level for I/O  On the T/P level for conversion  The principal AthenaPool converter is responsible for reading and writing of the entire group of persistent objects Because the extending AthenePool converters (for fake SG objects) are never called by the I/O framework directly Order of writing is important because navigational information needs to be stored in the principal TLP object  Extensions used by more than one principal converter need to clone their AthenaPool converter (!) Orsay 21/2/2012Marcin Nowak BNL 6

Schema Evolution  Persistent object versioning is supported on AthenaPoolCnv level  X persistent representations - > 1 transient type  TLP converters work on 1 1 principle Need X different TLP converters  For extended converters, each version (X) needs to clone its extensions The same principle as for a shared extension But for schema evolution case this is done only on demand  The extensions can be versioned as well The principal TLP converter needs to be extended with the current version of the extending TLP converter Orsay 21/2/2012Marcin Nowak BNL 7

Extending T/P Converters Overview Orsay 21/2/2012Marcin Nowak BNL (PAS) 8 Orsay 21/2/2012Marcin Nowak BNL (PAS) 8 T->P N P 2 ->T P N ->T P 1 ->T AthenaPoolCnv PNPN P 1,2..N Object Store T POOL T->P N P 2 ->T P N ->T P 1 ->T Extending AthenaPoolCnv PNPN T->P N P 2 ->T P N ->T P 1 ->T Extending AthenaPoolCnv PNPN P 1,2..N Merge