The POOL Relational Abstraction Layer 3D Workshop CERN, December 2004 Radovan Chytracek CERN/IT/DB - LCG.

Slides:



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

Data Management Expert Panel - WP2. WP2 Overview.
Data Management Expert Panel. RLS Globus-EDG Replica Location Service u Joint Design in the form of the Giggle architecture u Reference Implementation.
CERN - IT Department CH-1211 Genève 23 Switzerland t LCG Persistency Framework CORAL, POOL, COOL – Status and Outlook A. Valassi, R. Basset,
Migrating CRISTAL from Objectivity to RDBMS Andrew Branson University of the West of England CERN, 13/01/2014.
D. Düllmann - IT/DB LCG - POOL Project1 POOL Release Plan for 2003 Dirk Düllmann LCG Application Area Meeting, 5 th March 2003.
GGF Toronto Spitfire A Relational DB Service for the Grid Peter Z. Kunszt European DataGrid Data Management CERN Database Group.
DBA Meeting December Supporting the MINOS MySQL Database at FNAL Nick West.
MI807: Database Systems for Managers Introduction –Course Goals & Schedule –Logistics –Syllabus Review Relational DBMS Basics –RDBMS Role in Applications.
MD807: Relational Database Management Systems Introduction –Course Goals & Schedule –Logistics –Syllabus Review RDBMS Basics –RDBMS Role in Applications.
POOL Project Status GridPP 10 th Collaboration Meeting Radovan Chytracek CERN IT/DB, GridPP, LCG AA.
RIZWAN REHMAN, CCS, DU. Advantages of ORDBMSs  The main advantages of extending the relational data model come from reuse and sharing.  Reuse comes.
Object Storage into RDBMS through the POOL framework Ioannis Papadopoulos, CERN IT/ADC January 27 th, 2005 January 27 th, 2005.
Conceptual Architecture of PostgreSQL PopSQL Andrew Heard, Daniel Basilio, Eril Berkok, Julia Canella, Mark Fischer, Misiu Godfrey.
CORAL Database Copy Tools By Gitika Khare RRCAT, Indore, India.
Status of SQL and XML I/O Sergey Linev, GSI, Darmstadt, Germany.
Database Design for DNN Developers Sebastian Leupold.
PHP Data Object (PDO) Khaled Al-Sham’aa. What is PDO? PDO is a PHP extension to formalise PHP's database connections by creating a uniform interface.
Don Quijote Data Management for the ATLAS Automatic Production System Miguel Branco – CERN ATC
MySQL. Dept. of Computing Science, University of Aberdeen2 In this lecture you will learn The main subsystems in MySQL architecture The different storage.
© Dennis Shasha, Philippe Bonnet – 2013 Communicating with the Outside.
Irina Sourikova Brookhaven National Laboratory for the PHENIX collaboration Migrating PHENIX databases from object to relational model.
CHEP 2006, Mumbai13-Feb-2006 LCG Conditions Database Project COOL Development and Deployment: Status and Plans Andrea Valassi On behalf of the COOL.
INFNGrid Constanza Project: Status Report A.Domenici, F.Donno, L.Iannone, G.Pucciani, H.Stockinger CNAF, 6 December 2004 WP3-WP5 FIRB meeting.
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.
Introduction to Database Systems1. 2 Basic Definitions Mini-world Some part of the real world about which data is stored in a database. Data Known facts.
The Replica Location Service The Globus Project™ And The DataGrid Project Copyright (c) 2002 University of Chicago and The University of Southern California.
The Persistency Patterns of Time Evolving Conditions for ATLAS and LCG António Amorim CFNUL- FCUL - Universidade de Lisboa A. António, Dinis.
INTRODUCTION TO DBS Database: a collection of data describing the activities of one or more related organizations DBMS: software designed to assist in.
CERN - IT Department CH-1211 Genève 23 Switzerland t COOL Conditions Database for the LHC Experiments Development and Deployment Status Andrea.
EGEE User Forum Data Management session Development of gLite Web Service Based Security Components for the ATLAS Metadata Interface Thomas Doherty GridPP.
CERN - IT Department CH-1211 Genève 23 Switzerland t CORAL COmmon Relational Abstraction Layer Radovan Chytracek, Ioannis Papadopoulos (CERN.
PHP Workshop ‹#› PHP Data Object (PDO). PHP Workshop ‹#› What is PDO? PDO is a PHP extension to formalise PHP's database connections by creating a uniform.
7/6/2004 CMS weekZhen Xie 1 POOL RDBMS abstraction layer status & plan Zhen Xie Princeton University.
Scalable Hybrid Keyword Search on Distributed Database Jungkee Kim Florida State University Community Grids Laboratory, Indiana University Workshop on.
PHP Workshop ‹#› أطلق إبداعك 2 أطلق إبداعك 2 مدرس معتمد من مركز زووم PHP Data Object (PDO)
CHEP 2004, Core Software Integration of POOL into three Experiment Software Frameworks Giacomo Govi CERN IT-DB & LCG-POOL K. Karr, D. Malon, A. Vaniachine.
Database authentication in CORAL and COOL Database authentication in CORAL and COOL Giacomo Govi Giacomo Govi CERN IT/PSS CERN IT/PSS On behalf of the.
Oracle for Physics Services and Support Levels Maria Girone, IT-ADC 24 January 2005.
ESG-CET Meeting, Boulder, CO, April 2008 Gateway Implementation 4/30/2008.
Grid Technology CERN IT Department CH-1211 Geneva 23 Switzerland t DBCF GT Upcoming Features and Roadmap Ricardo Rocha ( on behalf of the.
The Lisbon Team - 8 December 2003The Lisbon team - 25 November 2003 ConditionsDB – Lisbon API Wide access to CondDB data and schema LCG Conditions DB 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,
ATLAS Database Access Library Local Area LCG3D Meeting Fermilab, Batavia, USA October 21, 2004 Alexandre Vaniachine (ANL)
Overview of C/C++ DB APIs Dirk Düllmann, IT-ADC Database Workshop for LHC developers 27 January, 2005.
Scalable data access with Impala Zbigniew Baranowski Maciej Grzybek Daniel Lanza Garcia Kacper Surdy.
Grid Technology CERN IT Department CH-1211 Geneva 23 Switzerland t DBCF GT Overview of DMLite Ricardo Rocha ( on behalf of the LCGDM team.
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.
DGC Paris Spitfire A Relational DB Service for the Grid Leanne Guy Peter Z. Kunszt Gavin McCance William Bell European DataGrid Data Management.
SRM-2 Road Map and CASTOR Certification Shaun de Witt 3/3/08.
POOL Status and Plans Current developments and proposed workplan for 2005 Ioannis Papadopoulos, CERN IT/ADC 31/3/2005 LCG Applications Area Internal Review.
Oracle Business Intelligence Foundation – Testing and Deploying OBI Repository.
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.
POOL & ARDA / EGEE POOL Plans for 2004 ARDA / EGEE integration Dirk Düllmann, IT-DB & LCG-POOL LCG workshop, 24 March 2004.
Unit-8 Introduction Of MySql. Types of table in PHP MySQL supports various of table types or storage engines to allow you to optimize your database. The.
Conditions Database Status and Plans for 2005 Andrea Valassi (CERN IT-ADC) LCG Applications Area Review 31 March 2005.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
Oracle for Physics Services and Support Levels Maria Girone, IT-ADC 6 April 2005.
LCG Application Area Internal Review Persistency framework summary and input for phase-2 planning Dirk Duellmann, CERN IT
Jean-Philippe Baud, IT-GD, CERN November 2007
(on behalf of the POOL team)
By: S.S.Tomar Computer Center CAT, Indore, India On Behalf of
POOL persistency framework for LHC
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
DATABASE MANAGEMENT SYSTEM
Grid Data Integration In the CMS Experiment
Presentation transcript:

The POOL Relational Abstraction Layer 3D Workshop CERN, December 2004 Radovan Chytracek CERN/IT/DB - LCG

15th December 2004Radovan Chytracek 2 Outline IntroductionIntroduction POOL architecture & RALPOOL architecture & RAL FeaturesFeatures ExampleExample Common status & per-plug-in statusCommon status & per-plug-in status Relational File CatalogRelational File Catalog IssuesIssues New developmentsNew developments ConclusionsConclusions

15th December 2004Radovan Chytracek 3 Motivation: independence from DB vendorsMotivation: independence from DB vendors Activity started for most parts only in March.Activity started for most parts only in March. –Requirements collection –Domain decomposition –Draft project plan Addressing the needs of the existing POOL relational components (FileCatalog, Collection), the POOL object storage mechanism (StorageSvc) and eventually also the ConditionsDB (if requested by the experiments).Addressing the needs of the existing POOL relational components (FileCatalog, Collection), the POOL object storage mechanism (StorageSvc) and eventually also the ConditionsDB (if requested by the experiments). The use-cases and requirements are defined and updated in close cooperation with experimentsThe use-cases and requirements are defined and updated in close cooperation with experiments Main developers: Ioannis Papadopoulos, Zhen Xie, Radovan Chytracek, Giacomo GoviMain developers: Ioannis Papadopoulos, Zhen Xie, Radovan Chytracek, Giacomo Govi Introduction

15th December 2004Radovan Chytracek 4 POOL components RDBMS Storage Svc EDG Replica Location Service Relational File Catalog Relational Collection

15th December 2004Radovan Chytracek 5 in POOL Uses Abstract interface Implementation Implements Technology dependent plug-in FileCatalogCollectionStorageSvc Experiment framework RelationalAccessLCG Reflection ObjectRelationalAccess Relational Collection Relational Catalog RelationalStorageSvc MySQL Oracle SQLite

15th December 2004Radovan Chytracek 6 Features Abstract, SQL-free APIAbstract, SQL-free API –With exceptions of WHERE & SET clauses Connection strings storable in a file catalogConnection strings storable in a file catalog –Example: mysql://raltest/RAL –Design decision: no connection credentials in the connection string Schema, table, constraints & index handlingSchema, table, constraints & index handling –DDL and meta-data functionality Variable bindingVariable binding –Named variables syntax supported, e.g. :VARNAME –ODBCAccess plug-in accepts positional ?-syntax as well Queries against single or multiple tablesQueries against single or multiple tables –Left joins possible –Sub-queries (back-end dependent) CursorsCursors –Scrollable Bulk insertsBulk inserts –Emulated if not supported by the back-end client API or server

15th December 2004Radovan Chytracek 7 Domain decomposition Database accessDatabase access –IRelationalService, IRelationalDomain, IRelationalSession, IAutheticationService Schema handlingSchema handling –IRelationalSchema, IRelationalTable, IRelationalTableDescription, IRelationalTableSchemaEditor, IRelationalTableIndexEditor, IRelationalIndex, IRelationalPrimaryKey, IRelationalForeignKey, IRelationalTablePrivilegeManager, IRelationalTypeConverter –AttributeList QueriesQueries –IRelationalQuery, IRelationalSubQuery, IRelationalQueryWithMultipleTable, IRelationalCursor, IRelationalTableDataEditor, IRelationalBulkInserter TransactionsTransactions –IRelationalTransaction

15th December 2004Radovan Chytracek 8 Example - Connection POOLContext::loadComponent("POOL/Services/XMLAuthenticationService" ); POOLContext::loadComponent("POOL/Services/RelationalService" ); seal::IHandle serviceHandle = POOLContext::context()-> query ("POOL/Services/RelationalService"); IRelationalDomain& domain = serviceHandle-> domainForConnection("mysql://raltest/RALTEST"); std::auto_ptr session(domain.newSession("mysql://raltest/RALTEST")); session->connect(); session->transaction().start(); session->userSchema().dropTable( "DataTable" ); session->transaction().commit();

15th December 2004Radovan Chytracek 9 Example – Create Table session->transaction().start(); std::auto_ptr desc( new RelationalEditableTableDescription( log, domain.flavorName())); desc->insertColumn("id", AttributeStaticTypeInfo ::type_name()); desc->insertColumn("x", AttributeStaticTypeInfo ::type_name()); desc->insertColumn("y", AttributeStaticTypeInfo ::type_name()); desc->insertColumn("c", AttributeStaticTypeInfo ::type_name()); IRelationalTable& table = session->userSchema().createTable( "DataTable", *descr ); session->transaction().commit();

15th December 2004Radovan Chytracek 10 Example – Insert Data session->transaction().start(); IRelationalTable& table = session->userSchema().tableHandle("DataTable"); AttributeList data( table.description().columnNamesAndTypes() ); IRelationalTableDataEditor& dataEditor = table.dataEditor(); for ( int i = 0; i ( i + 1 ); data["x"].setValue ( ( i + 1 ) * 1.1 ); data["y"].setValue ( ( i + 1 ) * 1.11 ); std::ostringstream os; os ( os.str() ); dataEditor.insertNewRow( data ); } session->transaction().commit();

15th December 2004Radovan Chytracek 11 Example - Query // Querying : SELECT * FROM DataTable WHERE id > 2 std::auto_ptr query( table.createQuery() ); query->setRowCacheSize( 5 ); AttributeList emptyVarList; query->setCondition( “id > 2”, emptyVarList ); IRelationalCursor& cursor = query->process(); if(cursor.start()) { while(cursor.next()) { const AttributeList& row = cursor.currentRow(); for( AttributeList::const_iterator iCol = row.begin();iCol != row.end(); ++iCol ) { std::cout spec().name() getValueAsString() << "\t"; } std::cout << std::endl; } } std::cout transaction().commit()); session->disconnect();

15th December 2004Radovan Chytracek 12 Common Status The latest is POOL release POOL_1_8_2-alphaThe latest is POOL release POOL_1_8_2-alpha –First RAL components available since POOL Base interfaces definedBase interfaces defined –Strictly following requirements AuthenticationService implementations available:AuthenticationService implementations available: –XML and shell environment based Oracle, ODBC/MySQL and SQLite plug-insOracle, ODBC/MySQL and SQLite plug-ins –unit-tested and excercised by ObjectRelational StorageService Proof of concept RelationalFileCatalog implementedProof of concept RelationalFileCatalog implemented –tested with Oracle, SQLite and MySQL servers First implementation tag of RelationalCollectionsFirst implementation tag of RelationalCollections –Yesterday

15th December 2004Radovan Chytracek 13 Oracle plug-in Oracle plug-inOracle plug-in –Uses Oracle OCI C API –Based on Oracle 10g Supports connection to 9i and 10g servers Makes use of the “binary_float” and “binary_double” SQL types –Can be used with the Oracle 10g instant client StatusStatus –Fixed all known bugs and introduced CLOB support

15th December 2004Radovan Chytracek 14 SQLite plug-in Flat file database engineFlat file database engine –Tiny memory footprint –Understands most of SQL-92 –Easy to use API First implementation based on SQLite version 2First implementation based on SQLite version 2 –File size and variable binding issues Now based on SQLite version 3Now based on SQLite version 3 –File size went down by factor of 2 –Real variable binding implementation in progress

15th December 2004Radovan Chytracek 15 MySQL Status MySQL access is via ODBCMySQL access is via ODBC –ODBC-based implementation –Native implementation now would run into maintenance problems as MySQL API is changing through versions 4.0 to 4.1 to 5.1 –Until 5.1 is out POOL access to MySQL via the more generic ODBC plug-in will be kept Uses UnixODBC + MyODBC 3.51Uses UnixODBC + MyODBC 3.51 –Native ODBC manager on Windows Tested against MySQL Tested against MySQL MySQL server requirementsMySQL server requirements –InnoDB and ANSI mode are required to keep the RAL semantics

15th December 2004Radovan Chytracek 16 Relational File Catalog Generic, RAL-based implementation of the FC interfacesGeneric, RAL-based implementation of the FC interfaces –RAL proof of concept –Exists since POOL –In testing now by CMS SQLite, Oracle Scalability/performance tests using the Oracle & MySQL/ODBC plug-inScalability/performance tests using the Oracle & MySQL/ODBC plug-in –RLS CMS production data as testing sample ~3x10 6 entries + metadata (~1x10 6 ) –RAL based replication test: Oracle: 90 minutes (dual CPU node, 2GB RAM) –True bulk inserts MySQL: 10 hours (single CPU node, 1.25.GB RAM) –No bulk inserts in MySQL 4.0.x API used by MyODBC –Good speed up to 10 6 entries

15th December 2004Radovan Chytracek 17 Relational Collection First tag release notesFirst tag release notes –Developed by Ioannis Papadopoulos and Kristo Karr Multiple collections in a given database/schemaMultiple collections in a given database/schema No restriction in the collection and variable namesNo restriction in the collection and variable names –as they do no longer map directly to table and column names Protection from concurrent writters through row lockingProtection from concurrent writters through row locking Use of links tables for the efficient storage of the tokensUse of links tables for the efficient storage of the tokens Provision for future extensions in the ICollection interface such asProvision for future extensions in the ICollection interface such as –retrieving the collection size –removing of records –addressing individual records –retrieving the list of the referenced databases/containers.

15th December 2004Radovan Chytracek 18 Issues Nested queries problems with ObjectRelational StorageServiceNested queries problems with ObjectRelational StorageService –SQLite & MySQL/ODBC (under investigation) CLOB trap when using bulk insertsCLOB trap when using bulk inserts –‘\0’ bytes not truncated by MySQL for TEXT columns –to be fixed in MySQL & checked for Oracle plug-in MySQL 4.0.x InnoDB does not scale well over 10 6 entriesMySQL 4.0.x InnoDB does not scale well over 10 6 entries –Perhaps due to single shared table space file –We’ll see in where table space-per-table is possible –TEXT column type to be used with care Storage overhead + slow query speed

15th December 2004Radovan Chytracek 19 New Developments Will review soon the existing interfacesWill review soon the existing interfaces –Extension of the table description interface (column size) –Support of BLOB types and “long long” MySQL native plug-in trialMySQL native plug-in trial –Still no cursors in 4.1, binary protocol & variable binding is + –Easy migration with MyODBC 3.53 for MySQL Available by January 2005 RelationalCollectionsRelationalCollections –First prototype is available –Testing and integration with real collection data (ATLAS) ODBCAccess plug-in re-factoringODBCAccess plug-in re-factoring –Allow support for more RDBMs: Oracle, PostgreSQL –Most of the points of variability already analyzed –Low priority

15th December 2004Radovan Chytracek 20 Conclusions We did itWe did it –Coding started in March – full implementations by now Oracle plug-in works in all casesOracle plug-in works in all cases SQLite & MySQL plug-ins in 99%SQLite & MySQL plug-ins in 99% All back-ends heavy stressed by POOL ObjectRelational StorageServiceAll back-ends heavy stressed by POOL ObjectRelational StorageService –see the next talk by Ioannis Papadopoulos RAL successfully used in implementationa across all POOL application domainsRAL successfully used in implementationa across all POOL application domains –File catalog, Collections, StorageService Our Thanks to CMS developers and ATLAS geometry database team for close collaboration and useful feedbackOur Thanks to CMS developers and ATLAS geometry database team for close collaboration and useful feedback