CERN - IT Department CH-1211 Genève 23 Switzerland www.cern.ch/i t CORAL COmmon Relational Abstraction Layer Radovan Chytracek, Ioannis Papadopoulos (CERN.

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. 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 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,
D. Düllmann - IT/DB LCG - POOL Project1 POOL Release Plan for 2003 Dirk Düllmann LCG Application Area Meeting, 5 th March 2003.
CERN - IT Department CH-1211 Genève 23 Switzerland t Relational Databases for the LHC Computing Grid The LCG Distributed Database Deployment.
Technical Architectures
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
POOL Project Status GridPP 10 th Collaboration Meeting Radovan Chytracek CERN IT/DB, GridPP, LCG AA.
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.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
CERN - IT Department CH-1211 Genève 23 Switzerland t Monitoring the ATLAS Distributed Data Management System Ricardo Rocha (CERN) on behalf.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
The LCG File Catalog (LFC) Jean-Philippe Baud – Sophie Lemaitre IT-GD, CERN May 2005.
Workshop Summary (my impressions at least) Dirk Duellmann, CERN IT LCG Database Deployment & Persistency Workshop.
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.
CERN - IT Department CH-1211 Genève 23 Switzerland t DB Development Tools Benthic SQL Developer Application Express WLCG Service Reliability.
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.
ALICE, ATLAS, CMS & LHCb joint workshop on
ATLAS Detector Description Database Vakho Tsulaia University of Pittsburgh 3D workshop, CERN 14-Dec-2004.
CERN Physics Database Services and Plans Maria Girone, CERN-IT
CERN - IT Department CH-1211 Genève 23 Switzerland t CORAL Server A middle tier for accessing relational database servers from CORAL applications.
The Persistency Patterns of Time Evolving Conditions for ATLAS and LCG António Amorim CFNUL- FCUL - Universidade de Lisboa A. António, Dinis.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
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.
7/6/2004 CMS weekZhen Xie 1 POOL RDBMS abstraction layer status & plan Zhen Xie Princeton University.
DGC Paris WP2 Summary of Discussions and Plans Peter Z. Kunszt And the WP2 team.
INFSO-RI Enabling Grids for E-sciencE Ganga 4 – The Ganga Evolution Andrew Maier.
Grid Technology CERN IT Department CH-1211 Geneva 23 Switzerland t DBCF GT DPM / LFC and FTS news Ricardo Rocha ( on behalf of the IT/GT/DMS.
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
CERN - IT Department CH-1211 Genève 23 Switzerland t High Availability Databases based on Oracle 10g RAC on Linux WLCG Tier2 Tutorials, CERN,
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
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.
Copyright (c) 2014 Pearson Education, Inc. Introduction to DBMS.
LCG Distributed Databases Deployment – Kickoff Workshop Dec Database Lookup Service Kuba Zajączkowski Chi-Wei Wang.
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.
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.
DGC Paris Spitfire A Relational DB Service for the Grid Leanne Guy Peter Z. Kunszt Gavin McCance William Bell European DataGrid Data Management.
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.
LHCC Referees Meeting – 28 June LCG-2 Data Management Planning Ian Bird LHCC Referees Meeting 28 th June 2004.
Conditions Database Status and Plans for 2005 Andrea Valassi (CERN IT-ADC) LCG Applications Area Review 31 March 2005.
CERN - IT Department CH-1211 Genève 23 Switzerland t Persistency Framework CORAL, POOL, COOL status and plans Andrea Valassi (IT-PSS) On.
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.
1 LCG Distributed Deployment of Databases A Project Proposal Dirk Düllmann LCG PEB 20th July 2004.
Oracle for Physics Services and Support Levels Maria Girone, IT-ADC 6 April 2005.
CERN IT Department CH-1211 Genève 23 Switzerland t ES CORAL Server & CORAL Server Proxy: Scalable Access to Relational Databases from CORAL.
CERN IT Department CH-1211 Genève 23 Switzerland t Load testing & benchmarks on Oracle RAC Romain Basset – IT PSS DP.
Jean-Philippe Baud, IT-GD, CERN November 2007
Database Replication and Monitoring
Database Readiness Workshop Intro & Goals
POOL persistency framework for LHC
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Data Management cluster summary
Grid Data Integration In the CMS Experiment
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Presentation transcript:

CERN - IT Department CH-1211 Genève 23 Switzerland t CORAL COmmon Relational Abstraction Layer Radovan Chytracek, Ioannis Papadopoulos (CERN IT-PSS-DP) Applications Area Internal Review, September 2006 (

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 2 The CORAL Team The Development Team –IT-PSS-DP Radovan Chytracek Giacomo Govi Ioannis Papadopoulos –Experiments Zhen Xie (CMS) The “Invisible” Team (within and outside IT) –Database administrators and experts –Other computing service developers and providers –SPI (for the development and release infrastructure) –Beta testers (from experiments, COOL developers,…)

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 3 CORAL Project Scope CORAL is: –a software system providing interfaces and implementations for accessing relational databases exposing a technology-independent API serving the use cases from the LCG encapsulating or forcing by design “best practices” –serving the needs of distributed deployment –the implementation basis of the relational components of POOL COOL experiment-specific software components

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 4 From the last review until now Recommendations in the last review (related to CORAL): –“The reviewers welcome the split of the RAL and POOL release cycles” CORAL released independently of POOL. –“Improve error handling; error reporting must propagate to end user with clear indication of which component in the complicated stack encountered the error, and provide sufficient description of the error” A complete exception hierarchy in CORAL reporting on the error conditions and the modules throwing the exception. CORAL architecture based on a thin component stack. –“(Security) In a distributed (grid) environment, POOL should not be the weakest point in the chain” Using grid certificates in order to retrieve the authentication credentials (via LFC)

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 5 Requirements from Deployment CORAL-based applications are expected to run in a grid-enabled environment –Multiple RDBMS technologies involved Oracle on Tier 0/1, MySQL, SQLite on Tier 2, … Technology-independent C++, SQL-free API –Multiple replicas of the relational data Indirection mechanisms –Use of shared database services Flexible and secure authentication mechanisms Smart client-side database connection management (fail-over, retrial, pooling,…) Hooks for client-side monitoring

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 6 C++, SQL-free API (I) 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 Oracle MySQL

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 7 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 Oracle MySQL

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 8 Component Architecture (I) 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

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 9 Component Architecture (II) Interactions across the various models is based on the SEAL component model. Advantages of this architectural choice –Client code depends on a very thin and lightweight software stack CoralBase (Data Types, Row Buffers, 195 KB) RelationalAccess (API, Exception Hierarchy, 115 KB) –Efficient unit testing and bug tracking –Most releases are binary compatible to the previous one: The core of the implementation is in run-time loadable components So far 16 releases –All of them backwards compatible (no need for change in user code, incremental extensions of the API) –11 of them fully binary compatible (no need even to recompile the user code)

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 10 RDBMS Functionality API Highlights –Schema definition/manipulation multicolumn indices, keys, constraints, views BLOB and variable-size string variables –Data manipulation Use of “bind variables”: Forced/internally implemented (in row insertions) or encouraged by design (row updates/deletions) “Bulk” operations “INSERT-SELECT” operations –Queries Row prefetching (client-side caching) Nested queries (“subselects”) …

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 11 RDBMS Back-End Technologies Oracle –Fully implements the CORAL API and all internal optimizations: Row prefetching, bind variables, server-side cursors,… –Based on OCI (C client library) MySQL –Better suited where only a low level of administration can be afforded –Based on the C client library version 5.0 SQLite –File-based; no administration required –Based on the C client library version Frontier –Squid caches between client and Oracle database –Suitable for read-only data –Implies constraints on the data deployment model (as data may become stale)

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 12 FrontierAccess plug-in Co-developed with Fermilab/CMS Deployment in progress –3D project, CMS Squid web proxy cache based data access for scalability Intensive round-trip development Still under active development Performance studies –CMS, ATLAS, COOL CMS App CMS SW POOL Object Relational Access CORAL Connection Service Relational Service Frontier Access Frontier client Oracle Frontier server SquidCache SquidCache SquidCache SquidCacheSquidCache

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 13 Service Indirection (Lookup Service) A database service catalog –An “LFN”: /my/conditions/data –A “PFN”/replica: oracle://HostName/SchemaName Single current implementation based on XML file –HTTP based access possible too A prototype implementation based on LFC –Developed in collaboration with RRCAT India –Released last week –No need for an extra service! A typical user never interacts directly with these components; simply specifies the logical connection string

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 14 Authentication Mechanisms CORAL connection strings tell only about the location of a data source –mysql://HostName/DatabaseName Data source access credentials not exposed –UserName=“Me”, Password=“ThEpAsSwOrD” –Credential parameters are retrieved from different software components given the bare connection string Two simple implementations currently: –Credentials from environment variables –Credentials stored in XML files –Used for application development and prototyping Secure implementation based on LFC is being developed –Authentication based using GRID certificates –Credentials linked to “database roles” and controlled by the LFC ACL mechanisms –Extension of the LFCLookupService –No need for an extra service (again…)!

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 15 Client-Side Connection Handling ConnectionService component –Original implementation inherited from ATLAS Coordinates Lookup, Authentication, Relational and Monitoring services –Ensures that at any given moment a user has a valid connection handle to the schema described by the logical name Connection re-trial and replica fail-over Minimizes resources on server from the client –Handles to read-only sessions on the same server share the same physical connection –Idle connections are pooled for a possible re-use Fully configurable parameters –To be largely determined by the service providers (DBAs) Extensive test plan for probing the behavior of the system –Under various imposed failures with an Oracle database: –

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 16 Client-Side Monitoring Reasons for client-side monitoring –complements the server-side monitoring –assists application debugging and tuning Implementation strategy –CORAL API defines the interfaces for the call-back objects that are called by the RDBMS plugins –Information is pushed from the system to the monitoring implementation Session and transaction time boundaries Time duration that the client waits on the server to execute an SQL command The SQL commands themselves –Current implementation serves as an example Experiments are expected to implement their own plugins that are coupled to specific monitoring systems

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 17 CORAL and DB Services Advantages (for the service providers) from CORAL-based applications –Best practices communicated to the development team and implemented centrally –Have to deal with a limited set of access patterns –Application system testing using the “integration service” makes deployment easier –Evolution of the database services and software can be quickly captured by (CORAL) developers and reflected by the rapid database access software upgrades Having the CORAL developers close to the service providers is COOL :-)

CERN - IT Department CH-1211 Genève 23 Switzerland t LCG AA Internal Review, September 2006: CORAL - 18 CORAL in Use and Outlook CORAL users –ATLAS Via POOL and COOL Direct usage from detector geometry and on-line applications –CMS Via POOL (RelationalFileCatalog, Object-Relational Access) Direct usage from conditions database and on-line applications –LHCb Via POOL and COOL Main priorities –LFC-based component for authentication –Focus on connection handling policies –Make CORAL thread-safe –Follow requirements from the 3D activities and implement the necessary solutions –Python interface to CORAL In cooperation with RRCAT, India