CORAL CORAL a software system for vendor-neutral access to relational databases Ioannis Papadopoulos, Radoval Chytracek, Dirk Düllmann, Giacomo Govi, Yulia.

Slides:



Advertisements
Similar presentations
Database System Concepts and Architecture
Advertisements

CERN - IT Department CH-1211 Genève 23 Switzerland t CORAL Server A middle tier for accessing relational database servers from CORAL applications.
CERN - IT Department CH-1211 Genève 23 Switzerland t LCG Persistency Framework CORAL, POOL, COOL – Status and Outlook A. Valassi, R. Basset,
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
MS DB Proposal Scott Canaan B. Thomas Golisano College of Computing & Information Sciences.
GGF Toronto Spitfire A Relational DB Service for the Grid Peter Z. Kunszt European DataGrid Data Management CERN Database Group.
NextGRID & OGSA Data Architectures: Example Scenarios Stephen Davey, NeSC, UK ISSGC06 Summer School, Ischia, Italy 12 th July 2006.
Lecture Nine Database Planning, Design, and Administration
Working with SQL and PL/SQL/ Session 1 / 1 of 27 SQL Server Architecture.
ATLAS Distributed Database Services Client Library D. Malon, A. Vaniachine ANL T. Wenaus BNL R. Hawkings, Yu. Shapiro CERN A. Pérus, RD Schaffer LAL, Orsay.
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
6/1/2001 Supplementing Aleph Reports Using The Crystal Reports Web Component Server Presented by Bob Gerrity Head.
Getting connected.  Java application calls the JDBC library.  JDBC loads a driver which talks to the database.  We can change database engines without.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
CSC2012 Database Technology & CSC2513 Database Systems.
CORAL Database Copy Tools By Gitika Khare RRCAT, Indore, India.
 Introduction Introduction  Purpose of Database SystemsPurpose of Database Systems  Levels of Abstraction Levels of Abstraction  Instances and Schemas.
Chapter Oracle Server An Oracle Server consists of an Oracle database (stored data, control and log files.) The Server will support SQL to define.
CST203-2 Database Management Systems Lecture 2. One Tier Architecture Eg: In this scenario, a workgroup database is stored in a shared location on a single.
Don Quijote Data Management for the ATLAS Automatic Production System Miguel Branco – CERN ATC
Intro-Part 1 Introduction to Database Management: Ch 1 & 2.
Fundamentals of Database Chapter 7 Database Technologies.
Oracle 10g Database Administrator: Implementation and Administration Chapter 2 Tools and Architecture.
CHEP 2006, Mumbai13-Feb-2006 LCG Conditions Database Project COOL Development and Deployment: Status and Plans Andrea Valassi On behalf of the COOL.
Databases E. Leonardi, P. Valente. Conditions DB Conditions=Dynamic parameters non-event time-varying Conditions database (CondDB) General definition:
PyCoral, Python interface to CORAL By S.S.Tomar RRCAT, Indore, India.
Introduction to dCache Zhenping (Jane) Liu ATLAS Computing Facility, Physics Department Brookhaven National Lab 09/12 – 09/13, 2005 USATLAS Tier-1 & Tier-2.
CERN IT Department CH-1211 Genève 23 Switzerland t ES Future plans for CORAL and COOL Andrea Valassi (IT-ES) For the Persistency Framework.
ATLAS Detector Description Database Vakho Tsulaia University of Pittsburgh 3D workshop, CERN 14-Dec-2004.
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.
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
CERN - IT Department CH-1211 Genève 23 Switzerland t COOL Conditions Database for the LHC Experiments Development and Deployment Status Andrea.
The POOL Persistency Framework POOL Project Review Introduction & Overview Dirk Düllmann, IT-DB & LCG-POOL LCG Application Area Internal Review October.
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.
7/6/2004 CMS weekZhen Xie 1 POOL RDBMS abstraction layer status & plan Zhen Xie Princeton University.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
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.
3D Testing and Monitoring Lee Lueking LCG 3D Meeting Sept. 15, 2005.
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)
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,
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
POOL Status and Plans Current developments and proposed workplan for 2005 Ioannis Papadopoulos, CERN IT/ADC 31/3/2005 LCG Applications Area Internal Review.
1 A Scalable Distributed Data Management System for ATLAS David Cameron CERN CHEP 2006 Mumbai, India.
CERN IT Department CH-1211 Genève 23 Switzerland t ES Developing C++ applications using Oracle OCI Lessons learnt from CORAL Andrea Valassi.
Status of tests in the LCG 3D database testbed Eva Dafonte Pérez LCG Database Deployment and Persistency Workshop.
SQL Server 2012 Session: 1 Session: 4 SQL Azure Data Management Using Microsoft SQL Server.
Introduction to Core Database Concepts Getting started with Databases and Structure Query Language (SQL)
The POOL Relational Abstraction Layer 3D Workshop CERN, December 2004 Radovan Chytracek CERN/IT/DB - LCG.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
Introduction to Database Programming with Python Gary Stewart
Introduction to DBMS Purpose of Database Systems View of Data
Databases (CS507) CHAPTER 2.
Jean-Philippe Baud, IT-GD, CERN November 2007
Database Replication and Monitoring
(on behalf of the POOL team)
LOCO Extract – Transform - Load
Database Readiness Workshop Intro & Goals
POOL persistency framework for LHC
CSC 480 Software Engineering
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Grid Data Integration In the CMS Experiment
Introduction to DBMS Purpose of Database Systems View of Data
Presentation transcript:

CORAL CORAL a software system for vendor-neutral access to relational databases Ioannis Papadopoulos, Radoval Chytracek, Dirk Düllmann, Giacomo Govi, Yulia Shapiro, Zhen Xie International Conference on Computing for High Energy and Nuclear Physics February 2006, T.I.F.R. Mumbai, India

Project Scope ● CORAL is: – the relational software domain of the LCG persistency framework (POOL) – an one-year-old product, following one year of prototype developments within POOL. – a C++, SQL-free, technology-independent API for accessing relational databases – serving the access patterns of the major applications of the LHC experiments – addressing the special requirements of distributed deployment ● CORAL is not: – attempting to cover all possible use cases and access patterns with relational databases – yet another general-purpose RDBMS connectivity library

Deployment of Distributed Databases ● Involves multiple technologies – A typical scenario: Tier0,1 on Oracle, Tier2 on MySQL ● Requires service indirection and fail-over mechanisms – The conditions data from a user perspective: /my/conditions/data – The actual “physical” locations of the data: ● oracle://ora_host1/ora_schema ● oracle://ora_host2/ora_schema ● mysql://my_host1/my_db ● Requires safe authentication mechanisms – To avoid wide and open distribution of user names and passwords. ● Requires monitoring – Client-side monitoring to complement the server-side monitoring

coral::ISchema& schema = session.nominalSchema(); coral::TableDescription tableDescription; tableDescription.setName( “T_t” ); tableDescription.insertColumn( “I”, “long long” ); tableDescription.insertColumn( “X”, “double” ); schema.createTable( tableDescription); CREATE TABLE T_t( I BIGINT, X DOUBLE PRECISION) CREATE TABLE “T_t” ( I NUMBER(20), X BINARY_DOUBLE) Example 1: Table creation OracleMySQL C++, SQL-free API (I)

C++, SQL-free API (II) coral::ITable& table = schema.tableHandle( “T_t” ); coral::IQuery* query = table.newQuery(); query->addToOutputList( “X” ); query->addToOrderList( “I” ); query->limitReturnedRows( 5 ); coral::ICursor& cursor = query->execute(); SELECT * FROM ( SELECT X FROM “T_t” ORDER BY I ) WHERE ROWNUM < 6 SELECT X FROM T_t ORDER BY I LIMIT 5 Example 2: Issuing a query OracleMySQL

Component Architecture RDBMS Implementation (oracle) RDBMS Implementation (sqlite) RDBMS Implementation (frontier) RDBMS Implementation (mysql) Authentication Service (xml) Authentication Service (environment) Lookup Service (xml) Lookup Service (lfc) Relational Service implementation Monitoring Service implementation Connection Service implementation CORAL Interfaces (C++ abstract classes user-level API) CORAL C++ types (Row buffers, Blob, Date, TimeStamp,...) Plug-in libraries, loaded at run-time, interacting only through the interfaces Client Software Common Implementation developer-level interfaces

RDBMS Components (I) ● API highlights – DDL operations ● Creating, altering tables, views ● Multicolumn keys, indices and constraints ● BLOB, fixed or variable-size string variables – DML operations ● “Bulk” operations ● Insert-select statements – Queries ● May involve tables and views within a schema ● Nested queries ● Set operations ● Row pre-fetching

RDBMS Components (II) ● Technologies supported: – Oracle ● Fully implements the CORAL API ● Based on OCI version 10g – MySQL ● Best suited where low level of administration is required ● Based on native C API version 4.0 (currently migrating to 5.0) – SQLite ● File-based, embedded SQL engine ● No administration, very lightweight! ● A means of transferring small amounts of relational data? – Frontier ● squid caches between client and Oracle database server

Authentication Mechanisms ● “Physical” connection string does not contain information about authentication credentials – eg: oracle://oradb/app_schema – Simply tells where is the data ● The loaded Authentication Service provides the credentials given a connection string – Environment-variables – XML file – Secure, certificate-based authentication is required for a real-life, grid-based operation! ● Work in progress

Database Service Indirection ● A File Catalog for databases ● 1-N mapping of logical to physical data locations – XML-based implementation – Immediate future: LFC-based implementation

Client-Side Monitoring ● Why client-side monitoring: – To complement the information from server-side monitoring (usually an administration task) – To assist application tuning and optimization ● Primary aim in CORAL: – provide the necessary hooks for the RDBMS plug-in components to push information such as: ● Time stamp of the session and transaction boundaries ● Time of client waiting for the server to execute a query ● The SQL statement itself ● Simple prototype exists as an implementation example – Experiment-specific implementations are expected to be used eventually in production

Connection Pooling & Fail-Over Mechanisms ● ConnectionService component: – Prototype implementation inherited from ATLAS (see #32) – Attempts the minimization of resource consumption on the server by an application's components: ● Pooling/re-using connections ● Sharing read-only connections – Attempts re-trial and fail-over in case of lost connection – Overall configuration management ● The user's entry point to a CORAL system

A client requires a session handle... ● ConnectionService internal operations: – What are the available replicas for “/my/conditions/data”? – The Lookup Service will reply “oracle://host/schema”,... – The Relational Service will load the oracle plug-in” – The Authentication Service will return user name and password corresponding to “oracle://host/schema”. – The oracle plug-in will connect and authenticate ● In case of failure the Connection Service tries the next replica – The Monitoring Service will register the start of the session ● The user has a valid handle for performing DDL, DML, queries. coral::ISessionProxy* session = connectionService->connect(“/my/database/schema”, coral::Update );

Why develop a CORAL-based application? ● to benefit from the introduction of new RDBMS implementations ● to be able to run – at any Tier level of the Grid – in TGV mode ● to avoid thinking in terms of database optimizations – Best practices are: ● enforced by design – eg. use of bind variables ● implemented inside the CORAL components – eg. efficient management of server-side cursors ● to assist database administrators – they have to deal with only a limited set of SQL patterns

CORAL in Use ● Relational components of POOL – File Catalog – Collections – ORA Relational Storage Manager (see #330) ● COOL (see #337) ● Experiment-specific software – CMS conditions – ATLAS detector geometry – ATLAS on-line applications –...

Outlook ● CORAL has already been integrated into the software of the LHC experiments – directly (eg. on-line applications) – indirectly (through POOL and COOL) ● Immediate development items address: deployment requirements ● Highest priority: focus on this year's service challenges

for further information...