CERN - IT Department CH-1211 Genève 23 Switzerland www.cern.ch/i t CORAL Server A middle tier for accessing relational database servers from CORAL applications.

Slides:



Advertisements
Similar presentations
Metadata Progress GridPP18 20 March 2007 Mike Kenyon.
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,
CORAL and COOL news for ATLAS (update since March 2012 ATLAS sw workshop)March 2012 Andrea Valassi (IT-SDC) ATLAS Database Meeting 24 th October 2013.
CERN IT Department CH-1211 Genève 23 Switzerland t ES Discussion of COOL - CORAL - POOL priorities for ATLAS Andrea Valassi (IT-ES) For the.
A Model for Grid User Management Rich Baker Dantong Yu Tomasz Wlodek Brookhaven National Lab.
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
N-Tier Architecture.
CERN - IT Department CH-1211 Genève 23 Switzerland t Partitioning in COOL Andrea Valassi (CERN IT-DM) R. Basset (CERN IT-DM) Distributed.
Getting connected.  Java application calls the JDBC library.  JDBC loads a driver which talks to the database.  We can change database engines without.
The Design Discipline.
LCG Milestones for Deployment, Fabric, & Grid Technology Ian Bird LCG Deployment Area Manager PEB 3-Dec-2002.
CERN - IT Department CH-1211 Genève 23 Switzerland t Monitoring the ATLAS Distributed Data Management System Ricardo Rocha (CERN) on behalf.
Kuali Rice at Indiana University Rice Setup Options July 29-30, 2008 Eric Westfall.
DIRAC Web User Interface A.Casajus (Universitat de Barcelona) M.Sapunov (CPPM Marseille) On behalf of the LHCb DIRAC Team.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
CERN IT Department CH-1211 Geneva 23 Switzerland t The Experiment Dashboard ISGC th April 2008 Pablo Saiz, Julia Andreeva, Benjamin.
Presented by Xiaoyu Qin Virtualized Access Control & Firewall Virtualization.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
PanDA Multi-User Pilot Jobs Maxim Potekhin Brookhaven National Laboratory Open Science Grid WLCG GDB Meeting CERN March 11, 2009.
1 st December 2003 JIM for CDF 1 JIM and SAMGrid for CDF Mòrag Burgon-Lyon University of Glasgow.
Workshop Summary (my impressions at least) Dirk Duellmann, CERN IT LCG Database Deployment & Persistency Workshop.
A. Valassi – QA for CORAL and COOL Forum – 29 h Sep Quality assurance for CORAL and COOL within the LCG software stack for the LHC.
Heterogeneous Database Replication Gianni Pucciani LCG Database Deployment and Persistency Workshop CERN October 2005 A.Domenici
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
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.
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 CASTOR Status March 19 th 2007 CASTOR dev+ops teams Presented by Germán Cancio.
CSC 312 Lecture 10 JDBC - Basics. Network Client Machine Server Machine (raptor.cs.mercer.edu) Client Application Server Prog. (Oracle) Database (csc312std)
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.
INFSO-RI Enabling Grids for E-sciencE Ganga 4 – The Ganga Evolution Andrew Maier.
Integration of the ATLAS Tag Database with Data Management and Analysis Components Caitriana Nicholson University of Glasgow 3 rd September 2007 CHEP,
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.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
3D Testing and Monitoring Lee Lueking LCG 3D Meeting Sept. 15, 2005.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
Implementing Remote Procedure Calls Andrew D. Birrell and Bruce Jay Nelson 1894 Xerox Palo Alto Research Center EECS 582 – W16.
Overview of C/C++ DB APIs Dirk Düllmann, IT-ADC Database Workshop for LHC developers 27 January, 2005.
CERN IT Department CH-1211 Genève 23 Switzerland t COOL Performance Tests ATLAS Conditions Database example Romain Basset, IT-DM October.
CORAL CORAL a software system for vendor-neutral access to relational databases Ioannis Papadopoulos, Radoval Chytracek, Dirk Düllmann, Giacomo Govi, Yulia.
Management of the LHCb DAQ Network Guoming Liu *†, Niko Neufeld * * CERN, Switzerland † University of Ferrara, Italy.
CERN - IT Department CH-1211 Genève 23 Switzerland t Operating systems and Information Services OIS Proposed Drupal Service Definition IT-OIS.
CERN IT Department CH-1211 Genève 23 Switzerland t ES Developing C++ applications using Oracle OCI Lessons learnt from CORAL Andrea Valassi.
Enabling Grids for E-sciencE INFSO-RI Enabling Grids for E-sciencE Gavin McCance GDB – 6 June 2007 FTS 2.0 deployment and testing.
Status of tests in the LCG 3D database testbed Eva Dafonte Pérez LCG Database Deployment and Persistency Workshop.
Database Project Milestones (+ few status slides) Dirk Duellmann, CERN IT-PSS (
Site Authorization Service Local Resource Authorization Service (VOX Project) Vijay Sekhri Tanya Levshina Fermilab.
LHCC Referees Meeting – 28 June LCG-2 Data Management Planning Ian Bird LHCC Referees Meeting 28 th June 2004.
CERN - IT Department CH-1211 Genève 23 Switzerland t Persistency Framework CORAL, POOL, COOL status and plans Andrea Valassi (IT-PSS) On.
CMS Experience with the Common Analysis Framework I. Fisk & M. Girone Experience in CMS with the Common Analysis Framework Ian Fisk & Maria Girone 1.
Core and Framework DIRAC Workshop October Marseille.
CERN - IT Department CH-1211 Genève 23 Switzerland t Service Level & Responsibilities Dirk Düllmann LCG 3D Database Workshop September,
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.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Jean-Philippe Baud, IT-GD, CERN November 2007
ODBC, OCCI and JDBC overview
(on behalf of the POOL team)
N-Tier Architecture.
Andrea Valassi (IT-ES)
3D Application Tests Application test proposals
Database Readiness Workshop Intro & Goals
Distribution and components
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
#01 Client/Server Computing
An example design for an Amadeus APIv2 Web Server Application
#01 Client/Server Computing
Presentation transcript:

CERN - IT Department CH-1211 Genève 23 Switzerland t CORAL Server A middle tier for accessing relational database servers from CORAL applications A. Valassi, A. Kalkhof, D. Duellmann, Z. Molnar (CERN IT-DM) M. Wache (University of Mainz / Atlas) A. Salnikov, R. Bartoldus (SLAC / Atlas) CHEP2009 (Prague), 23rd March 2009 Data Management Group

CERN - IT Department CH-1211 Genève 23 Switzerland t A. Valassi – CHEP 2009, 23 March 2009 Motivation Development status –Software architecture design Conclusions Outline CORAL Server – 2

CERN - IT Department CH-1211 Genève 23 Switzerland t A. Valassi – CHEP 2009, 23 March 2009 CORAL used to access main physics databases –Both directly and via COOL/POOL Previous talk about LCG Persistency Framework (A.V.) Important example: conditions data of Atlas, LHCb, CMS –Oracle is the main deployment technology at T0 and T1 Previous talk about distributed database operation (M. Girone) No middle tier in current client connection model –Simple client/server architecture Limitations of present deployment model –Security, performance, software distribution (see next slide) –Several issues may be addressed by adding a middle tier Introduction CORAL Server – 3

CERN - IT Department CH-1211 Genève 23 Switzerland t A. Valassi – CHEP 2009, 23 March 2009 Secure database access –Authentication via Grid certificates No support of database vendor for X.509 proxy certificates Hide database ports within the firewall (reduce vulnerabilities) –Authorization via VOMS groups in Grid certificates Efficient and scalable use of server resources –Multiplex client connections using fewer connections to DB –Option to use additional caching tier (CORAL server proxy) Also useful for further multiplexing and for client monitoring Client software deployment –CoralAccess client plugin using custom network protocol No need for Oracle/MySQL/SQLite client installation Interest from several stakeholders –Service managers: physics DB team, security team... –LHC users: Atlas HLT (replace MySQL-based DbProxy)... Motivation CORAL Server – 4

A. Valassi – CHEP 2009, 23 March 2009 Deployment scenario (e.g. COOL) CORAL Server – 5 Oracle DB Server FIREWALL Oracle OCI protocol (OPEN PORTS) COOL API Oracle Plugin Oracle OCI Connection Pool CORAL API User Code CoralServer Oracle Plug-in Oracle Client Connection Pool CORAL API CORAL protocol Oracle OCI protocol (NO OPEN PORTS) User Code Coral Plugin COOL API Connection Pool CORAL API CORAL protocol User Code Coral Plugin COOL API Connection Pool CORAL API CoralServer Proxy CORAL protocol

CERN - IT Department CH-1211 Genève 23 Switzerland t A. Valassi – CHEP 2009, 23 March 2009 First phase of development in –User requirements (Atlas HLT) analyzed in Nov-Dec 2007 –Main emphasis of development on server components Design based on template meta-programming techniques –Success in COOL R/O tests, problems in Atlas HLT tests New developments in 2009 –Several changes in the team in December 2008 Software review to identify areas for improvement Development restarted in Jan 2009 using a new comprehensive architecture design for server and client –Keep current focus on R/O access with proxy for Atlas HLT This is only the first customer – but is an excellent benchmark –Promising outlook after only two months Success in multi-client HLT tests against COOL Oracle DB Development overview CORAL Server – 6  Main focus of this talk

CERN - IT Department CH-1211 Genève 23 Switzerland t A. Valassi – CHEP 2009, 23 March 2009 Joint design of server and client components –Split system into packages ‘horizontally’ (each package includes a pair of one server and one client components) –RPC architecture based on Dec2007 python/C++ prototype Allow several people to work in parallel –Minimize software dependencies and couplings –Upgrades in one package should not impact the others Include standalone package tests in the design –Aim to intercept issues before they show up in system tests Decouple components using abstract interface –Modular architecture based on object-oriented design –Thin base package with common abstract interfaces –Encapsulate implementation details of concrete packages Guidelines for the new design CORAL Server – 7

A. Valassi – CHEP 2009, 23 March 2009 S/w architecture components CORAL Server – 8 client bridge classes User application CORAL application (plugins for Oracle, MySQL...) ServerStub ServerSocketMgr ServerFacade ClientStub ClientSocketMgr invoke remote call return remote results marshal arguments unmarshal results send request receive reply return local results invoke local call marshal results unmarshal arguments send reply receive request ICoralFacade IRequestHandler RelationalAccess interfaces CoralServer CoralStubs CoralSockets CoralAccess CoralServerBase Package 1 (a/b) Package 2 Package 3

CERN - IT Department CH-1211 Genève 23 Switzerland t A. Valassi – CHEP 2009, 23 March 2009 Multi-threaded server –Threads are managed by the SocketServer component –One listener thread (to accept new client connections) –One socket thread per client connection Pool of handler threads (many per client connection if needed) Network protocol agreed with proxy developers –Most application-level content is opaque to the proxy Proxy understands transport-level metadata and a few special application-level messages (connect, start transaction…) Most requests are flagged as cacheable: only hit the DB once –Server may identify (via a packet flag) client connections from a proxy and establishes a special ‘stateless’ mode Single R/O transaction spans the whole session ‘Push all rows’ model for queries (no open cursors) A few implementation details CORAL Server – 9

A. Valassi – CHEP 2009, 23 March 2009 Incremental tests of applications User application OracleAccess OCI implementation RelationalAccess interfaces CoralAccess bridge from RelationalAccess RelationalAccess interfaces ServerFacade facade to RelationalAccess ICoralFacade OracleAccess OCI implementation RelationalAccess interfaces User application CoralAccess bridge from RelationalAccess RelationalAccess interfaces ClientStub marshal / unmarshal ICoralFacade ServerStub unmarshal / marshal IRequestHandler ServerFacade facade to RelationalAccess ICoralFacade OracleAccess OCI implementation RelationalAccess interfaces User application Traditional CORAL “direct” (OracleAccess) CoralAccess bridge from RelationalAccess RelationalAccess interfaces ClientStub marshal / unmarshal ICoralFacade ClientSocket send / receive IRequestHandler ServerSocket receive / send ServerStub unmarshal / marshal IRequestHandler ServerFacade facade to RelationalAccess ICoralFacade OracleAccess OCI implementation RelationalAccess interfaces User application TCP/IP CORAL Server – 10 Add package 1 (a/b) “façade only” Add package 2 “stub + façade” Add package 3 “server” (full chain)

CERN - IT Department CH-1211 Genève 23 Switzerland t A. Valassi – CHEP 2009, 23 March 2009 Focus on R/O access with proxy for Atlas HLT –Tests with Atlas HLT COOL db (OK) –Tests with Atlas HLT geometry db (ongoing) –Tests with Atlas HLT trigger db (in preparation) –Atlas HLT data validation (not started yet) –Atlas HLT performance validation (ongoing) Observed hangs with Oracle connection sharing –Libraries are not thread-safe (CORAL, Oracle client)? –Connection sharing may be disabled in Atlas HLT But it is essential for connection multiplexing without a proxy Progress on secure authentication/authorization –OpenSSL with VOMS handling of proxy certificates Current development status CORAL Server – 11

CERN - IT Department CH-1211 Genève 23 Switzerland t A. Valassi – CHEP 2009, 23 March 2009 First release (R/O, no certificates) in Q –After we have fulfilled the Atlas HLT requirements Support for proxy certificates in Q2/Q –Secure authentication and authorization Full R/W functionalities in Q –DML (e.g. insert table rows) and DDL (e.g. create tables) Deployment of test servers at CERN by Q –In parallel, discuss deployment at T1 sites Outlook CORAL Server – 12

CERN - IT Department CH-1211 Genève 23 Switzerland t A. Valassi – CHEP 2009, 23 March 2009 Reserve slides CORAL Server – 13

CERN - IT Department CH-1211 Genève 23 Switzerland t A. Valassi – CHEP 2009, 23 March 2009 Atlas HLT and DbProxy CORAL Server – 14

A. Valassi – CHEP 2009, 23 March 2009 Architecture (client/server) CORAL Server – 15 CORAL server (executable) CoralAccess (client plugin) User application CORAL application (plugins for Oracle, MySQL...) invoke remote call return remote results marshal arguments unmarshal results send request receive reply return local results invoke local call marshal results unmarshal arguments send reply receive request RelationalAccess interfaces