M.Frank CERN/LHCb - Persistency Workshop, Dec.2004 Agenda: 2 separate talks! Don’t mangle together what does not belong together 1.Schema Evolution Tests.

Slides:



Advertisements
Similar presentations
Operating Systems Operating system is the “executive manager” of all hardware and software.
Advertisements

Data lifecycle Data Management & Survey Conception
Programming Types of Testing.
Status and Future of CINT Reflex as Reflection Database Object-Oriented CINT Multi-Threading Masaharu Goto, Agilent Philippe Canal, Fermilab Stefan Roiser,
SEAL Reflex, the new Reflection Library Stefan Roiser (for the LCG/SEAL Dictionary work package) LCG Applications Area Meeting, Oct. 6, 2004.
Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Chapter 12A Separate Compilation and Namespaces For classes this time.
Reconstruction and Analysis on Demand: A Success Story Christopher D. Jones Cornell University, USA.
Honors Compilers Addressing of Local Variables Mar 19 th, 2002.
C++ Classes in Depth. Topics Designing Your Own Classes Attributes and Behaviors Writing Classes in C++ Creating and Using Objects.
SCRIPTING LANGUAGE. The first interactive shells were developed in the 1960s to enable remote operation of the first time-sharing systems, and these,
Chapter 1 Program Design
Introduction To C++ Programming 1.0 Basic C++ Program Structure 2.0 Program Control 3.0 Array And Structures 4.0 Function 5.0 Pointer 6.0 Secure Programming.
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
C++ / G4MICE Course Session 3 Introduction to Classes Pointers and References Makefiles Standard Template Library.
Copyright © Cengage Learning. All rights reserved. CHAPTER 2 THE LOGIC OF COMPOUND STATEMENTS THE LOGIC OF COMPOUND STATEMENTS.
COMP 175: Computer Graphics March 24, 2015
Lattice 2004Chris Maynard1 QCDml Tutorial How to mark up your configurations.
M.Frank LHCb/CERN - In behalf of the LHCb GAUDI team Data Persistency Solution for LHCb ã Motivation ã Data access ã Generic model ã Experience & Conclusions.
An -based issue-tracking/ workflow system Zukhanye Kwinana Department of Computer Science Rhodes University.
Prime Numbers and Prime Factorization. Factors Factors are the numbers you multiply together to get a product. For example, the product 24 has several.
CINT & Reflex: New Reflection Data Structures Masa(haru) Goto Agilent Philippe Canal Fermilab/CD Stefan Roiser, Axel Naumann PH/SFT.
Systems Development Lifecycle Analysis. Learning Objectives List the nine stages of the system life cycle Explain the system life cycle as an iterative.
CHEP 2003 March 22-28, 2003 POOL Data Storage, Cache and Conversion Mechanism Motivation Data access Generic model Experience & Conclusions D.Düllmann,
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
Looping and Counting Lecture 3 Hartmut Kaiser
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
ROOT Future1 Some views on the ROOT future ROOT Workshop 2001 June 13 FNAL Ren é Brun CERN.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
THtml  THtml will generate >=1 doc.root file .html pages generated from doc.root files by April (Feb doesn't exist)  Bertrand: extract doc for online.
Summing Up Object Oriented Design. Four Major Components: Abstraction modeling real-life entities by essential information only Encapsulation clustering.
Apr. 8, 2002Calibration Database Browser Workshop1 Database Access Using D0OM H. Greenlee Calibration Database Browser Workshop Apr. 8, 2002.
LC Software Workshop, May 2009, CERN P. Mato /CERN.
CSE 332: Design Patterns Review: Design Pattern Structure A design pattern has a name –So when someone says “Adapter” you know what they mean –So you can.
A compiler is a computer program that translate written code (source code) into another computer language Associated with high level languages A well.
STAR Schema Evolution Implementation in ROOT I/O V. Perevoztchikov Brookhaven National Laboratory,USA.
Methodology First and Language Second -A Way to Teach Object-Oriented Programming Haibin Zhu, PhD Department of Computer Science and Mathematics Nipissing.
LCG Applications Area Meeting - 5 Feb 2003 ATLAS Strategy for the Data Dictionary & Persistency David R. Quarrie Lawrence Berkeley National Laboratory.
The Visitor Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
General Purpose ROOT Utilities Victor Perevoztchikov, BNL.
ROOT Team Meeting Axel Naumann CERN PH/SFT Crienftlex Extended Version. And also Director’s Cut. Crienftlex.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Dictionary and POOL Dirk Duellmann.
CINT & Reflex – The Future CINT’s Future Layout Reflex API Work In Progress: Use Reflex to store dictionary data Smaller memory footprint First step to.
In-class program development 1 You are to develop a simple calculator which will allow the user (you, also) to perform the following operations: The first.
ROOT Workshop M.Frank LHCb/CERN Improvements in the I/O Area (*)  General I/O related improvements  Tree related issues  Plans (*) I present.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
D. Duellmann - IT/DB LCG - POOL Project1 Internal Pool Release V0.2 Dirk Duellmann.
CINT/Reflex workshop 1 Rene Brun 4 May 2005 Summary of the CINT/Reflex workshop 2-6 May 2005
M.Frank, CERN/LHCb Persistency Workshop, Dec, 2004 Distributed Databases in LHCb  Main databases in LHCb Online / Offline and their clients  The cross.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
Today… Modularity, or Writing Functions. Winter 2016CISC101 - Prof. McLeod1.
DATA FLOW DIAGRAMS.
POOL Historical Notes POOL has been the most advanced and the most used AA project. Currently, excellent teamwork with experiments on new features and.
Modularization of Geant4 Dynamic loading of modules Configurable build using CMake Pere Mato Witek Pokorski
Managing State Chapter 13.
2.00 Understand operations, economics, and professional development.
Behavioral Design Patterns
Java Beans Sagun Dhakhwa.
Distribution and components
Geant4 Geometry Objects Persistency using ROOT
POOL persistency framework for LHC
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Software Requirements analysis & specifications
Advanced Programming Behnam Hatami Fall 2017.
Learning to Program in Python
Review: Design Pattern Structure
Simulation Framework Subproject cern
Copyright © Cengage Learning. All rights reserved.
Agenda Software development (SD) & Software development methodologies (SDM) Orthogonal views of the software OOSD Methodology Why an Object Orientation?
ROOT Support and Developments at FNAL
Function of Operating Systems
Presentation transcript:

M.Frank CERN/LHCb - Persistency Workshop, Dec.2004 Agenda: 2 separate talks! Don’t mangle together what does not belong together 1.Schema Evolution Tests 2.Dictionaries on Demand

M.Frank CERN/LHCb - Persistency Workshop, Dec.2004 Schema Evolution Tests  POOL/ROOT Schema evolution  Motivation  Planned tests

M.Frank CERN/LHCb 3Persistency Workshop, Dec.2004 Goals  Schema evolution  Proof that POOL inherits the ROOT schema evolution No more – no less No extras  Dictionary on demand  Late loading of dictionaries

M.Frank CERN/LHCb 4Persistency Workshop, Dec.2004 Schema Evolution  Root provides schema evolution  POOL inherits the ROOT schema evolution  class TStreamerInfo  No extra effort inside POOL necessary  But it has to be tested…  Establish test matrix  Cross check with native root ie. rootcint generated dictionaries

M.Frank CERN/LHCb 5Persistency Workshop, Dec.2004 Schema Evolution Test Matrix

M.Frank CERN/LHCb 6Persistency Workshop, Dec.2004 Timescale  After the move to ROOT 4.02  Results (and possible fixes) around Easter

M.Frank CERN/LHCb - Persistency Workshop, Dec.2004 On Demand Dictionary Loading  Usage of dictionaries  Circumstances/boundary conditions  Technical details  Required changes

M.Frank CERN/LHCb 8Persistency Workshop, Dec.2004 Dictionaries on Demand  Dictionaries are necessary  At write time for the classes to be written  At read time when they are requested by ROOT  Any class dictionary must be complete  The class itself  Any base class  Any aggregate/association Let’s analyze the current situation

M.Frank CERN/LHCb 9Persistency Workshop, Dec.2004 POOL and ROOT Reflection.h seal::reflect::Class lcgdict.h ROOT Metaclasses rootcint CINT data CINT Interpreter ROOT I/O POOL Gateway Looks pretty much the same… Except subtle differences

M.Frank CERN/LHCb 10Persistency Workshop, Dec.2004 What are the Differences ?  rootcint provides a callback when a class comes online / offline  This allows to convert “fake” classes on the fly to “real” classes  SEAL reflection currently does not  Will be part of Reflex (evolution of SEAL dictionary)  ROOT and SEAL class names are the same …most of the time  e.g. ROOT/CINT does not use the “std” namespace (remember gcc 2.95 was the same ?)

M.Frank CERN/LHCb 11Persistency Workshop, Dec.2004 Consequences (1)  POOL registers a “TClassGenerator” module to ROOT,  retrieves load requests and must satisfy them  Requests are expressed in the names known to ROOT  There is no second notification  ROOT / CINT meta-classes can only created by the POOL gateway is a SEAL reflection class is available  The requested dictionary module must be loaded

M.Frank CERN/LHCb 12Persistency Workshop, Dec.2004 Consequences (2)  ROOT wants to know the data member offsets to generate TStreamerInfo(s) and calls  “ShowMembers”, which requires an object instance For any dictionary translation we need  A valid LCG dictionary  A valid object instance

M.Frank CERN/LHCb 13Persistency Workshop, Dec.2004 Possible Solutions  Use the SEAL dictionary service  Would work well for reading and writing as long as  As long as there are no abstract classes and an object instance can easily be created  The std namespace is not in use  Based on capability information (I guess) No library loading, but no inheritance information either  Otherwise: Need to scan all existing classes and look for  ROOT – SEAL name translation match  Concrete meta-classes of abstract types

M.Frank CERN/LHCb 14Persistency Workshop, Dec.2004 Hence, the Problems are…  Need to blindly scan for classes  At this moment the dictionary service is no longer helpful  Likely to end up with even more dictionaries in memory

M.Frank CERN/LHCb 15Persistency Workshop, Dec.2004 Any Feasible Solution 1.Requires that the POOL gateway keeps track of all dictionaries which are  Currently “on hold” requested by ROOT  “on hold” = described by a “fake class”  This is done by ROOT using TClassGenerator  Currently “online” in the seal reflection  Need to migrate to Reflex 2.Requires POOL to be notified  When ROOT uses a metaclass the first time (while reading), not or not only when opening the file

M.Frank CERN/LHCb 16Persistency Workshop, Dec.2004 Any Feasible Solution (2) 3.Requires that the bloody type names become standardized  Remember: Everything is bound using strings  And this is a huge mess  There is no standard and no agreement whatsoever !  Std or not …  “using” or not  short signed, short signed int, signed short int they all come along - name them !!  CINT, gccxml, cxxabi and VC++ I know to be different  Probably every compiler has it’s own opinion

M.Frank CERN/LHCb 17Persistency Workshop, Dec.2004 Timescale  After the move to ROOT 4.02  After the move to Reflex  All of POOL needs to move it will enter at the top level interfaces  Hopefully after a standardization of type names  If there is any hope at all  But I stll strongly believe there should be a unambiguous uniquely reversible transformation between the type name and the typeid  It is feasible, but it needs collaboration between SEAL – ROOT – POOL  No timescale

M.Frank CERN/LHCb 18Persistency Workshop, Dec.2004 Conclusions  The ROOT schema evolution mechanisms must be tested  After the move to ROOT 4.02  Hopefully results will be present until Easter  The testing could also be a project for outside contributors  Dictionaries on Demand  Require the next generation reflection interface  Preferably receive a callback from ROOT on the first usage of a meta-class  Require some common naming conventions