POOL persistency framework for LHC

Slides:



Advertisements
Similar presentations
An Object/Relational Mapping tool Free and open source Simplifies storage of object data in a relational database Removes the need to write and maintain.
Advertisements

Chapter 10: Designing Databases
Database System Concepts and Architecture
Management Information Systems, Sixth Edition
CERN - IT Department CH-1211 Genève 23 Switzerland t LCG Persistency Framework CORAL, POOL, COOL – Status and Outlook A. Valassi, R. Basset,
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
D. Düllmann - IT/DB LCG - POOL Project1 POOL Release Plan for 2003 Dirk Düllmann LCG Application Area Meeting, 5 th March 2003.
Next Generation Node (NGN) Technical Overview April 2007.
--What is a Database--1 What is a database What is a Database.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
POOL Project Status GridPP 10 th Collaboration Meeting Radovan Chytracek CERN IT/DB, GridPP, LCG AA.
Object Storage into RDBMS through the POOL framework Ioannis Papadopoulos, CERN IT/ADC January 27 th, 2005 January 27 th, 2005.
Session-01. Hibernate Framework ? Why we use Hibernate ?
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
Data Persistence and Object-Relational Mapping Slides by James Brucker, used with his permission 1.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
CHAPTER 14 USING RELATIONAL DATABASES TO PROVIDE OBJECT PERSISTENCE (ONLINE) © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database.
Object Oriented Analysis and Design 1 Chapter 7 Database Design  UML Specification for Data Modeling  The Relational Data Model and Object Model  Persistence.
© 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 14 Using Relational Databases to Provide Object Persistence (Overview) Modern Database.
Hibernate Persistence. What is Persistence Persist data to database or other storage.  In OO world, persistence means persist object to external storage.
CHEP 2003 March 22-28, 2003 POOL Data Storage, Cache and Conversion Mechanism Motivation Data access Generic model Experience & Conclusions D.Düllmann,
1 Mapping to Relational Databases Presented by Ramona Su.
ALICE, ATLAS, CMS & LHCb joint workshop on
(1) Introduction to Models using the Play Framework Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
The POOL Persistency Framework POOL Project Review Introduction & Overview Dirk Düllmann, IT-DB & LCG-POOL LCG Application Area Internal Review October.
7/6/2004 CMS weekZhen Xie 1 POOL RDBMS abstraction layer status & plan Zhen Xie Princeton University.
NOVA A Networked Object-Based EnVironment for Analysis “Framework Components for Distributed Computing” Pavel Nevski, Sasha Vanyashin, Torre Wenaus US.
Persistent State Service 1  Concept  Persistence is the ability of an object state to survive termination of the process in which the object executes.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Pool Project and ROOT I/O Dirk Duellmann What is Pool? Component Breakdown Status and Plans.
Object storage and object interoperability
LCG Distributed Databases Deployment – Kickoff Workshop Dec Database Lookup Service Kuba Zajączkowski Chi-Wei Wang.
Andrea Valassi (CERN IT-DB)CHEP 2004 Poster Session (Thursday, 30 September 2004) 1 HARP DATA AND SOFTWARE MIGRATION FROM TO ORACLE Authors: A.Valassi,
ATLAS Database Access Library Local Area LCG3D Meeting Fermilab, Batavia, USA October 21, 2004 Alexandre Vaniachine (ANL)
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.
CHEP 2004, POOL Development Status & Plans POOL Development Status and Plans K. Karr, D. Malon, A. Vaniachine (Argonne National Laboratory) R. Chytracek,
CORAL CORAL a software system for vendor-neutral access to relational databases Ioannis Papadopoulos, Radoval Chytracek, Dirk Düllmann, Giacomo Govi, Yulia.
Building Preservation Environments with Data Grid Technology Reagan W. Moore Presenter: Praveen Namburi.
Submitted by: Moran Mishan. Instructed by: Osnat (Ossi) Mokryn, Dr.
Hibernate Java Persistence API. What is Persistence Persistence: The continued or prolonged existence of something. Most Applications Achieve Persistence.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
LCG Application Area Internal Review Persistency framework summary and input for phase-2 planning Dirk Duellmann, CERN IT
Management Information Systems by Prof. Park Kyung-Hye Chapter 7 (8th Week) Databases and Data Warehouses 07.
New Technology: Why, What ,How
Chapter 1 Introduction.
Oxana Smirnova, Jakob Nielsen (Lund University/CERN)
(on behalf of the POOL team)
By: S.S.Tomar Computer Center CAT, Indore, India On Behalf of
CMS High Level Trigger Configuration Management
Chris Menegay Sr. Consultant TECHSYS Business Solutions
POOL: Component Overview and use of the File Catalog
POOL File Catalog: Design & Status
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Entity Framework By: Casey Griffin.
Flexible Extensible Digital Object Repository Architecture
Flexible Extensible Digital Object Repository Architecture
Datamining : Refers to extracting or mining knowledge from large amounts of data Applications : Market Analysis Fraud Detection Customer Retention Production.
The POOL Persistency Framework
CS 174: Server-Side Web Programming February 12 Class Meeting
Grid Data Integration In the CMS Experiment
Hibernate Bayu Priyambadha, S.Kom.
Introduction to Databases Transparencies
AMGA Web Interface Vincenzo Milazzo
MySQL Migration Toolkit
.NET vs. J2EE Architecture
Metadata Framework as the basis for Metadata-driven Architecture
Metadata The metadata contains
Developing and testing enterprise Java applications
Object Relational Mapping Tools
Presentation transcript:

POOL persistency framework for LHC Zhen Xie Princeton University (for the POOL project) Sep-15 Zhen Xie, Frontier Science 2005

Zhen Xie, Frontier Science 2005 Outline The POOL project overview, experience and new development architecture, domains and software components Object Relational Mapping in POOL (POOL-ORA) Object Relational Mapping (ORM) POOL implementation of ORM CMS offline conditions database with POOL-ORA Sep-15 Zhen Xie, Frontier Science 2005

Zhen Xie, Frontier Science 2005 POOL Project Pool Of persistent Objects for LHC Framework for persistency of C++ objects Started in 2002 as a project under LHC Computing Grid (LCG) Application Area. Collaboration of LHC experiments and CERN/IT POOL widely used in the LHC experiments Hybrid approach: C++ streaming technology, such as ROOT/IO, for bulk data; RDBMS for catalogs, collections and metadata. Established baseline for event data handling for ATLAS, CMS, LHCb Data volume stored ~400 Tb! New development focus RDBMS implementation of POOL API through Object Relational Mapping (ORM) Started to proof POOL API is not bounded to ROOT Interests in the product went immediately beyond the original scope First functional release in Feb. 2005, chosen by CMS as the baseline for offline conditions database right afterwards This is the focus of this talk Sep-15 Zhen Xie, Frontier Science 2005

Zhen Xie, Frontier Science 2005 POOL architecture Storage technology neutral API Built from SW components Implement pure abstract C++ interfaces user code is insulated from concrete implementations and technologies Minimal dependencies between components Weak coupling ensured by interactions only via their abstract interfaces Components are loaded on demand via plug-in management and component model Sep-15 Zhen Xie, Frontier Science 2005

Zhen Xie, Frontier Science 2005 POOL domains Storage Manager Streams C++ objects into/from a storage Resolves a logical object reference into a physical object File Catalog Maintains the information about POOL accessible data files or database instances Resolves a logical reference into a physical data source Entry point to the Grid Collections Provides tools to manage ensembles of objects stored via POOL persistence services Explicit: server-side selection of object from collections Implicit: defined by physical containment of the objects Sep-15 Zhen Xie, Frontier Science 2005

Zhen Xie, Frontier Science 2005 POOL components Sep-15 Zhen Xie, Frontier Science 2005

Object Relational Mapping (ORM): what, why & how Automated and transparent persistence of objects to tables in a relational database by transform data from one representation to another Bridge the “object/relation paradigm” mismatch Research history back to 1980s, gained more and more popularity over other object persistency solutions Hand-coding persistency layer with SQL or ODBC Object-oriented databases Why No need to bend/twist the object model until it matches the underlying database – comfortable for application developer RDBMS vendor independent and SQL-free ORM implementations in the open software world Hibernate: the most popular framework in Java world Difficult to implement in C++ due to lack of standard reflection library POOL-ORA in C++ LCG has its own run time reflection library: SEAL reflection POOL has its own database abstraction layer Sep-15 Zhen Xie, Frontier Science 2005

ORM in the overall POOL architecture Experiment framework FileCatalog Collection StorageSvc RelationalStorageSvc Relational Catalog Relational Collection ObjectRelationalAccess RelationalAccess Seal reflection MySQL Oracle SQLite uses implements Implementation Abstract interface Technology dependent plugin Sep-15 Zhen Xie, Frontier Science 2005

ORM and Object Storage in POOL Mapping rules implemented by ObjectRelationalAccess layer Object id: generated from Primary Keys of the table simple class  one table Embedded class: subset of the table row of the owning class Class inheritance: more than one possibilities. The default rule is “table-per-concrete-class” Object association  table foreign key constraints Mapping metadata which mapping rule is used; association of class/member names to table/column names, types; etc. Mapping metadata is versioned and stored with the object data User registers the mapping metadata in a XML file which steers the process; otherwise, default mapping takes effects. Guided object storage Combined information from the SEAL dictionary and the mapping file guides the object streaming at runtime Tools allow user to transform existing relational tables to objects. Sep-15 Zhen Xie, Frontier Science 2005

. “Hi” 3 2.2 22 2 “Hello” 1.4 10 1 B_S B_I Y X ID 0.1 32.1 5.452 4 4.1 A Mapping example Class A{ int x ; float y ; vector<double> v ; Class B { int i ; string s ; } b; }; . “Hi” 3 2.2 22 2 “Hello” 1.4 10 1 B_S B_I Y X ID T_A 0.1 32.1 5.452 4 4.1 12.2 0.12 V POS T_A_V p.k. f.k. constraint This is only one of the possible mappings! Sep-15 Zhen Xie, Frontier Science 2005

Zhen Xie, Frontier Science 2005 Typical use cases Write data as objects into RDBMS and read them back as objects from OO application Transparent: no need of explicit database schema design; tables generated automatically following the ORM rules and metadata. Write data as relational tables and read them back as object E.g. reading existing tables in the database as objects from OO application Sep-15 Zhen Xie, Frontier Science 2005

CMS conditions database with POOL-ORA online and offline databases are clearly decoupled Online: pure relational database Offline: POOL-ORA database. Online and offline databases have different schemas online to offline transfer procedure extract and transfer necessary data from online database to offline Use POOL-ORA command-line tools to make the transferred data readable as objects Offline software handles the event data and the conditions data through the same POOL API even though the underlying technologies are different. Sep-15 Zhen Xie, Frontier Science 2005

Zhen Xie, Frontier Science 2005 Summary LCG-POOL has been integrated into the software framework of three LHC experiments and successfully deployed for data production Provides hybrid store for event data integrating Root/IO with RDBMS technology This area is migrating to support and maintenance phase POOL is focusing on developing RDBMS implementation of the POOL-API through ORM mechanism ORM is a popular object persistency solution POOL provides such a solution in C++ which is rare! CMS has chosen POOL-ORA as baseline technology for offline conditions database Online and offline database technology compatibility No worry about the object/relational mismatch in software modeling; no SQL vendor specific code in software Event data and conditions data are handled through the same interface: POOL-API Sep-15 Zhen Xie, Frontier Science 2005