Object Storage into RDBMS through the POOL framework Ioannis Papadopoulos, CERN IT/ADC January 27 th, 2005 January 27 th, 2005.

Slides:



Advertisements
Similar presentations
Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
Advertisements

Data Definition Language (DDL)
Chapter 10: Designing Databases
Data Management Design
Organizing Data & Information
Harvard University Oracle Database Administration Session 2 System Level.
Fundamentals, Design, and Implementation, 9/e Chapter 16 Object-Oriented Database Processing.
POOL Project Status GridPP 10 th Collaboration Meeting Radovan Chytracek CERN IT/DB, GridPP, LCG AA.
Introduction To Databases IDIA 618 Fall 2014 Bridget M. Blodgett.
XML, distributed databases, and OLAP/warehousing The semantic web and a lot more.
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Oracle for Software Developers. What is a relational database? Data is represented as a set of two- dimensional tables. (rows and columns) One or more.
CORAL Database Copy Tools By Gitika Khare RRCAT, Indore, India.
Chapter Oracle Server An Oracle Server consists of an Oracle database (stored data, control and log files.) The Server will support SQL to define.
Database Technical Session By: Prof. Adarsh Patel.
Tom Castiglia Hershey Technologies
1 Advanced Databases (CM036): Lecture # 5 ( Object-Relational and Nested-Relational Databases) Introduction to Object-Relational features of Oracle 9i.
1 CS 430 Database Theory Winter 2005 Lecture 17: Objects, XML, and DBMSs.
Software Solutions for Variable ATLAS Detector Description J. Boudreau, V. Tsulaia University of Pittsburgh R. Hawkings, A. Valassi CERN A. Schaffer LAL,
CHEP 2006, Mumbai13-Feb-2006 LCG Conditions Database Project COOL Development and Deployment: Status and Plans Andrea Valassi On behalf of the COOL.
What is a schema ? Schema is a collection of Database Objects. Schema Objects are logical structures created by users to contain, or reference, their data.
Chapter 12: Designing Databases
© 2002 by Prentice Hall 1 David M. Kroenke Database Processing Eighth Edition Chapter 18 Object- Oriented Database Processing.
CHEP 2003 March 22-28, 2003 POOL Data Storage, Cache and Conversion Mechanism Motivation Data access Generic model Experience & Conclusions D.Düllmann,
ATLAS Detector Description Database Vakho Tsulaia University of Pittsburgh 3D workshop, CERN 14-Dec-2004.
An RTAG View of Event Collections, and Early Implementations David Malon ATLAS Database Group LHC Persistence Workshop 5 June 2002.
Chapter 38 Persistence Framework with Patterns 1CS6359 Fall 2011 John Cole.
ROOT I/O for SQL databases Sergey Linev, GSI, Germany.
The Persistency Patterns of Time Evolving Conditions for ATLAS and LCG António Amorim CFNUL- FCUL - Universidade de Lisboa A. António, Dinis.
The POOL Persistency Framework POOL Project Review Introduction & Overview Dirk Düllmann, IT-DB & LCG-POOL LCG Application Area Internal Review October.
Apr. 8, 2002Calibration Database Browser Workshop1 Database Access Using D0OM H. Greenlee Calibration Database Browser Workshop Apr. 8, 2002.
CERN - IT Department CH-1211 Genève 23 Switzerland t CORAL COmmon Relational Abstraction Layer Radovan Chytracek, Ioannis Papadopoulos (CERN.
7/6/2004 CMS weekZhen Xie 1 POOL RDBMS abstraction layer status & plan Zhen Xie Princeton University.
Database Systems Lecture 1. In this Lecture Course Information Databases and Database Systems Some History The Relational Model.
Persistent State Service 1  Concept  Persistence is the ability of an object state to survive termination of the process in which the object executes.
BI Practice March-2006 COGNOS 8BI TOOLS COGNOS 8 Framework Manager TATA CONSULTANCY SERVICES SEEPZ, Mumbai.
Session 1 Module 1: Introduction to Data Integrity
Object storage and object interoperability
9/28/2005Philippe Canal, ROOT Workshop TTree / SQL Philippe Canal (FNAL) 2005 Root Workshop.
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,
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.
The SEAL Component Model Radovan Chytracek CERN IT/DB, LCG AA On behalf of LCG/SEAL team This work received support from Particle Physics and Astronomy.
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.
POOL Status and Plans Current developments and proposed workplan for 2005 Ioannis Papadopoulos, CERN IT/ADC 31/3/2005 LCG Applications Area Internal Review.
ROOT-CORE Team 1 Philippe Canal Markus Frank I/O Basic I/O, RDBMS interfaces, Trees.
G.Govi CERN/IT-DB 1GridPP7 June30 - July 2, 2003 Data Storage with the POOL persistency framework Motivation Strategy Storage model Storage operation Summary.
Status of tests in the LCG 3D database testbed Eva Dafonte Pérez LCG Database Deployment and Persistency Workshop.
1 10 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 10 Designing Databases.
Conditions Database Status and Plans for 2005 Andrea Valassi (CERN IT-ADC) LCG Applications Area Review 31 March 2005.
Introduction to Core Database Concepts Getting started with Databases and Structure Query Language (SQL)
CHAPTER 9 File Storage Shared Preferences SQLite.
11/15/2004 CDB LCG/CONDDB MEETING (CERN) 1 An Overview of the CDB API Igor A. Gaponenko (LBNL)
The POOL Relational Abstraction Layer 3D Workshop CERN, December 2004 Radovan Chytracek CERN/IT/DB - LCG.
POOL Historical Notes POOL has been the most advanced and the most used AA project. Currently, excellent teamwork with experiments on new features and.
Data Integrity & Indexes / Session 1/ 1 of 37 Session 1 Module 1: Introduction to Data Integrity Module 2: Introduction to Indexes.
(on behalf of the POOL team)
By: S.S.Tomar Computer Center CAT, Indore, India On Behalf of
Chapter 6 - Database Implementation and Use
POOL persistency framework for LHC
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Datamining : Refers to extracting or mining knowledge from large amounts of data Applications : Market Analysis Fraud Detection Customer Retention Production.
Chapter 4 Indexes.
CH 4 Indexes.
CH 4 Indexes.
Event Storage GAUDI - Data access/storage Framework related issues
CMPE/SE 131 Software Engineering March 7 Class Meeting
New I/O navigation scheme
Presentation transcript:

Object Storage into RDBMS through the POOL framework Ioannis Papadopoulos, CERN IT/ADC January 27 th, 2005 January 27 th, 2005

Motivation for RDBMS-based object I/O On-line configuration/conditions dataOn-line configuration/conditions data –Present data already written into an RDBMS as C++ objects in the off-line reconstruction/analysis framework Off-line conditions/calibration/geometry dataOff-line conditions/calibration/geometry data –Same technology for IoV index and data payload

Reminder: RAL in POOL uses Abstract interface Implementation implements Technology dependent plugin FileCatalogCollectionStorageSvc Experiment framework RelationalAccess LCG Reflection ObjectRelationalAccess Relational Collection Relational Catalog RelationalStorageSvc MySQL Oracle SQLite

Object Storage using RAL and POOL ObjectRelationalAccessObjectRelationalAccess –Bridging the differences between object and relational worlds –Connection with the SEAL dictionary RelationalStorageServiceRelationalStorageService –Implementation of the POOL StorageSvc developer- level interfaces based on the ObjectRelationalAccess package Command line toolsCommand line tools –To accommodate existing schemas and relational data –To customize the object view of the relational data (and inversely)

Object storage into RDBMS How to map classes ↔ tables ?How to map classes ↔ tables ? –Both C++ and SQL allow the description of data layout –…but with very different constraints/aims no single unique mapping need to store object/relational mapping together with object data No notion of object identity in RDBMS (persistent address)No notion of object identity in RDBMS (persistent address) –requires unique index for addressable objects –part of mapping definition

A Mapping Example (I) class A { int x; int x; float y; float y; std::vector v; std::vector v; class B { class B { int i; int i; std::string s; std::string s; } b; } b;};

A Mapping Example (II)..... “Hi” “Hello” B_SB_IYXID T_A VPOSID T_A_V p.k.f.k. constraint This is only one of the possible mappings!

defining/storing/materializing mappings The ObjectRelationalAccess package providesThe ObjectRelationalAccess package provides –Definition of hierarchy of transient mapping elements Element types: Object, Primitive, Array, Pointer, PoolReference Element : variable type, name, scope, columns, and sub-elements –Default object/relational mapping generation Takes care of duplication and lengths of table/column names –Persistency of mapping definition Versioning Transient structure stored in three tables –Materialization of mapping (schema preparation) Ensures the generation of proper indices and constraints Command line toolsCommand line tools –Customized mapping using an XML driver file –Dumping the mapping information into XML files

The RelationalStorageService Designed to make use of the full functionality of the POOL StorageSvc frameworkDesigned to make use of the full functionality of the POOL StorageSvc framework –Reminder : POOL data hierarchy: Technology domain Database (ROOT or SQLite file, MySQL database, Oracle schema) Container (collection of physically or logically clustered objects) Object ID Appears in latest internal releases of POOLAppears in latest internal releases of POOL Supports two minor technologiesSupports two minor technologies –POOL_RDBMS_HOMOGENEOUS (equivalent to ROOTTREE) –POOL_RDBMS_POLYMORPHIC (equivalent to ROOTKEY)

Current capabilities Can store objects containing:Can store objects containing: –embedded objects –STL containers (nested containment as well) –pool::Reference types Not yet supported:Not yet supported: –C-arrays –pointers –bitsets –long long (RAL limitation) PluginsPlugins –Oracle : fully functional –MySQL, SQLite : functional for objects with up to single level of STL containment

Implementation (I) Automatic generation of object/relational mappingsAutomatic generation of object/relational mappings Protection from concurrent writing through row lockingProtection from concurrent writing through row locking –Locking of the container header table rows –Locking of the database table row POOL_RSS_CONTAINERS CONTAINER_ID CONTAINER_NAME CONTAINER_TYPE TABLE_NAME CLASS_NAME MAPPING_VERSION NUMBER_OF_WRITTEN_OBJECTS NUMBER_OF_DELETED_OBJECTS POOL_RSS_DB GUID NUMBER_OF_CONTAINERS

Implementation (II) Consistent reading guaranteed using read-only transactionsConsistent reading guaranteed using read-only transactions Use of bind variables everywhereUse of bind variables everywhere Early preparation and reuse of data buffersEarly preparation and reuse of data buffers Homogeneous containersHomogeneous containers –Container table = Top-level table from class mapping Polymorphic containersPolymorphic containers –Container table = Table of object headers –Target OIDs controlled by “hand-made” sequences MY_CONTAINER OID CLASS_NAME MAPPING_VERSION TARGET_OID POOL_RSS_SEQ NAME VALUE

Implementation (III) STL container I/OSTL container I/O –Makes use of the SEAL dictionary information Writing based on the existence of the “begin” and “size” methods of the container, and the “*” and “++” operators of the corresponding iterator Reading based on the existence of the “insert( elem,pos)” method in every container Special containers (queue, stack) handled through the corresponding underlying containers Dictionary generation requires –“—pool” flag switched off –declaration of the iterator (and pair in case of maps) classes in the xml file –forward declaration of the iterator types –Bulk inserts for “leaf” containers when writing –Row pre-fetching when reading

The TODO list Command line tools for populating POOL containers from existing relational dataCommand line tools for populating POOL containers from existing relational data Implement general selections (like in ROOTTREE)Implement general selections (like in ROOTTREE) Enable streaming of large arrays into BLOBSEnable streaming of large arrays into BLOBS Handle object identities made of more than a single column :Handle object identities made of more than a single column : –Registered plugins performing transformations from multiple values into a unique unsigned long type

Summary Object storage into RDBMS using the POOL storage mechanism has been achieved using the RALObject storage into RDBMS using the POOL storage mechanism has been achieved using the RAL Technologically neutral object description in RDBMS is feasibleTechnologically neutral object description in RDBMS is feasible The RelationalStorageService is by itself a stress test case for the RAL pluginsThe RelationalStorageService is by itself a stress test case for the RAL plugins