By: S.S.Tomar Computer Center CAT, Indore, India On Behalf of

Slides:



Advertisements
Similar presentations
M.Frank LHCb/CERN POOL persistency: Status  Current understanding  Today’s model  Conclusions.
Advertisements

D. Düllmann - IT/DB LCG - POOL Project1 POOL Release Plan for 2003 Dirk Düllmann LCG Application Area Meeting, 5 th March 2003.
Fundamentals, Design, and Implementation, 9/e Chapter 12 ODBC, OLE DB, ADO, and ASP.
Fundamentals, Design, and Implementation, 9/e COS 346 DAY 22.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
Centralized and Client/Server Architecture and Classification of DBMS
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
The Relational Model. Review Why use a DBMS? OS provides RAM and disk.
Chapter 2 Database System Architecture. An “architecture” for a database system. A specification of how it will work, what it will “look like.” The “ANSI/SPARC”
M.Frank LHCb/CERN - In behalf of the LHCb GAUDI team Data Persistency Solution for LHCb ã Motivation ã Data access ã Generic model ã Experience & Conclusions.
Database System Concepts and Architecture Lecture # 2 21 June 2012 National University of Computer and Emerging Sciences.
9/14/2012ISC329 Isabelle Bichindaritz1 Database System Life Cycle.
CS 474 Database Design and Application Terminology Jan 11, 2000.
1/26/2004TCSS545A Isabelle Bichindaritz1 Database Management Systems Design Methodology.
CHEP 2003 March 22-28, 2003 POOL Data Storage, Cache and Conversion Mechanism Motivation Data access Generic model Experience & Conclusions D.Düllmann,
Lesson Overview 3.1 Components of the DBMS 3.1 Components of the DBMS 3.2 Components of The Database Application 3.2 Components of The Database Application.
1 CS 430 Database Theory Winter 2005 Lecture 2: General Concepts.
Efficient RDF Storage and Retrieval in Jena2 Written by: Kevin Wilkinson, Craig Sayers, Harumi Kuno, Dave Reynolds Presented by: Umer Fareed 파리드.
Elmasri and Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Pearson Education, Inc. Slide 2-1 Data Models Data Model: A set.
Database Environment Chapter 2. Data Independence Sometimes the way data are physically organized depends on the requirements of the application. Result:
INTRODUCTION TO DBS Database: a collection of data describing the activities of one or more related organizations DBMS: software designed to assist in.
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.
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.
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.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Pool Project and ROOT I/O Dirk Duellmann What is Pool? Component Breakdown Status and Plans.
Object storage and object interoperability
G.Govi CERN/IT-DB 1GridPP7 June30 - July 2, 2003 Data Storage with the POOL persistency framework Motivation Strategy Storage model Storage operation Summary.
Next-Generation Navigational Infrastructure and the ATLAS Event Store Abstract: The ATLAS event store employs a persistence framework with extensive navigational.
Building Preservation Environments with Data Grid Technology Reagan W. Moore Presenter: Praveen Namburi.
3 Copyright © 2004, Oracle. All rights reserved. Database Architecture Comparison.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
POOL Based CMS Framework Bill Tanenbaum US-CMS/Fermilab 04/June/2003.
Data Integrity & Indexes / Session 1/ 1 of 37 Session 1 Module 1: Introduction to Data Integrity Module 2: Introduction to Indexes.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
College of Arts & Science Computer Science Department
Introduction to DBMS Purpose of Database Systems View of Data
Databases (CS507) CHAPTER 2.
CS4222 Principles of Database System
Data Virtualization Demoette… ODBC Clients
Chapter (12) – Old Version
File System Implementation
(on behalf of the POOL team)
Web Development Web Servers.
Lecture 3 Overview of Database Systems
Database Management:.
Open Source distributed document DB for an enterprise
Chapter 15 Database Connectivity and Web Technologies
POOL: Component Overview and use of the File Catalog
File System Implementation
POOL persistency framework for LHC
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Methodology – Physical Database Design for Relational Databases
CHAPTER 3 Architectures for Distributed Systems
Net 323 D: Networks Protocols
The POOL Persistency Framework
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Grid Data Integration In the CMS Experiment
Database Environment Transparencies
Data Persistency Solution for LHCb
Analysis models and design models
Java Database Connectivity
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Computer Science Projects Database Theory / Prototypes
Chapter 15: File System Internals
Physical Data Modeling – Implementation
Event Storage GAUDI - Data access/storage Framework related issues
Practical Database Design and Tuning Objectives
Presentation transcript:

Our Experiences and Analysis of the POOL Storage Manager for Relational Back-ends By: S.S.Tomar Computer Center CAT, Indore, India On Behalf of CAT-POOL TEAM

Topics Of Discussion Introduction The POOL Storage Manager The two “proof-of-concept” tests RelationalStorageSvc prototype details Storage Manager – Our Feedback from the implementation for Relational back ends Summary. Thank You CAT POOL Team

Introduction POOL project. POOL, File Catalog. POOL, Storage Manager Objective -Persistency of Objects for the LHC. The Basic Concept. POOL, File Catalog. Provides unique ID to a Database/File in POOL. PFN, FID & LFN POOL, Storage Manager Provides Interfaces for diverse Storage Technologies. CAT POOL Team

(Cont…) Storage option in current version of the POOL. ROOT (by using RootStorageSvc component) RelationalStorageSvc prototype Storage of Objects in Relational Backends. Proof-of-concept for the POOL Storage Manager. CAT, India’s contribution to the POOL project. Back… CAT POOL Team

Persistency – What is it? Transient Persistent C++ pointer => object ID Objects & pointers Objects, object IDs, collections & DBs CAT POOL Team Back…

The POOL – Basic Concept A application may access databases (eg ROOT files) from a set of catalogs Each database has containers of one specific technology (eg ROOT trees) Smart Pointers are used to transparently load objects into a client side cache define object associations across file or technology boundaries Storage Manager Back… CAT POOL Team

POOL File Catalog POOL uses GUID implementation for FileID Logical Naming Object Lookup POOL uses GUID implementation for FileID unique and immutable identifier for a file (generated at create time) allows to produce sets of file with internal references without requiring a central ID allocation service catalog fragments created independently can later be merged without modification to data files. Object lookup is based only on right side box! Logical filenames are supported but not required Back… CAT POOL Team

POOL Storage Manager Objectives/Goals. Conceptual Architecture. Diverse storage Tech. support (Root, RDBMS,…). Manage on-demand use of storage technologies. Rapid adoption of new storage technologies. Conceptual Architecture. POOL Storage Hierarchy. Internal Data Structures in a database/file. Token – The persistent object ID. Back… CAT POOL Team

POOL Storage Hierarchy Back… CAT POOL Team

Internal Data Structures in a Database DataBase Context ##Shapes ##Links EntryID LinkID ShapeID pShape ##Params NameValue CAT POOL Team Back…

Token – The Persistent Object ID StorageMgr Cont Token = Tech + DB + Cont_name Full Token = Cont Token + RowID OID = oid.first:oid.second Oid.first => EntryID =>Cont Token Oid.second => RowID Storage type DB name Cont.name Item ID Disk Storage database Database Container Objects CAT POOL Team Back…

The Two “Proof-of-concept” tests Navigation, storage and retrieval of objects with primitive data members. Test2: Navigation, storage and retrieval of objects with referenced data members. CAT POOL Team

(Cont…) Test2 : Various Cases: Case1: Same Technology Same Database Reference Test: Objects in one Technology referencing objects in same technology and same database. Case2: Same Technology Different Database Reference Test: Objects in one Technology referencing objects in same technology but in different database. Case3: Cross Technology Reference Test: Objects in one Technology (RDBMS) referencing objects in Different Technology (ROOT). Back… CAT POOL Team

Case1: Same Technology Same Database Reference Test Cont_1 Cont_2 CAT POOL Team Back…

Case2: Same Technology different Database Reference test Cont_1 Cont_2 CAT POOL Team Back…

Case3: Cross Technology Reference Test Cont_1 Cont_2 Database1 Database2 CAT POOL Team Back…

RelationalStorageSvc prototype RSSvc Introduction. Objectives/Goals. Design Considerations. The Design. Token Dereferencing. Writing/Reading Illustration. Back… CAT POOL Team

RSSvc’s place in POOL Architecture CAT POOL Team

RSSvc Introduction RelationalStorageSvc has been implemented using a design similar to RootStorageSvc component. A plug-in in POOL framework - for persistency of c++ objects in RDBMS. RDBMS vendor independent (oracle/mysql/sqlserver/…) CAT POOL Team

(Cont…) Uses ODBC connectivity option. Implements POOL StorageSvc interfaces and uses ODBC APIs. Prototype development using RedHat Linux 7.3 as OS. Oracle 9i(9.2.0) as RDBMS. Oracle wire protocol driver from DataDirect. POOL ver 1.2 to 1.6.1 for testing. Back… CAT POOL Team

RSSvc Design Objectives/Goals Store/Retrieve/Navigate simple C++ objects in RDBMS. Achieve RDBMS vendor independency (as much as possible). Use SEAL dictionary and plugin services for converting transient object to persistent object representation in RDBMS. for implementing the component as a plug-in. Back… CAT POOL Team

Design Considerations POOL Database = User schema Every user has a different context in RDBMS. Physical reference to a database to be made using the DSN (data source name) concept of Relational technology. A Class is mapped to a table in database. A data member of a class is mapped to a column in the database table. Member classifiers/qualifiers to be stored along with persistent shape of the class. Back… CAT POOL Team

The Design File Catalog related Physical file name mapping. Storage Manager related Data Structures mapping. Primitive data type mapping. Reference data type mapping. Back… CAT POOL Team

Physical file name mapping PFN(in file catalog) = DSN:Username:Password E.g PFN = OracleWP2:tomar:catpool refers to database on host oradev9.cern.ch with SID=D9,running on port number 1521 accessible to user tomar using password catpool.For establishing connectivity with the database it uses the odbc driver located at /afs/cern.ch/sw/lcg/app/pool/drivers/odbc/lib/ivora19.so CAT POOL Team

Typical DSN entry in ODBC.ini [OracleWP2] Driver=//afs/cern.ch/sw/lcg/app/pool/drivers/odbc/lib/ivora19.so Description=DataDirect 4.20 Oracle Wire Protocol Hostname=oradev9.cern.ch LogonID=tomar Password=****** PortNumber=1521 SID=D9 CAT POOL Team

Typical FileCatalog entries <File ID="B2B6AA42-E882-D811-8CDF-00D0B7B86B36"> <physical> <pfn filetype="Oracle" name="OracleWP2:tomar:catpool"/> </physical> <logical> </logical> </File> <File ID="B2992387-E882-D811-81CF-00D0B7B86B36"> <pfn filetype="Oracle" name="OracleWP3:tomar2:tomar2"/> <logical/> </File> Back… CAT POOL Team

Storage Manager related Data Structures mapping ##Shapes(ShapeID, pShape) = Table Shapes## With columns ShapeID and pShape. ##Links(LinkID) = Table Links## With column LinkID. ##Params(NameValue) =Table Params## With column NameValue Back… CAT POOL Team

Primitive data type mapping Persistent shape of a class with primitive datatype members is stored as datatype@member-classifier e.g : int@P;float@O;char@R where P-public,R-private,O-protected Primitive data types are mapped to RDBMS datatypes as. Back… CAT POOL Team

unsigned long int number long double number double number float float long number char varchar unsigned char varchar signed char varchar int number long int number short int number unsigned int number signed int number unsigned long int number CAT POOL Team

signed short int number unsigned short int number ulonglong number signed long int number signed short int number unsigned short int number ulonglong number unsigned long long int number longlong number long long int number signed long long int number Back… CAT POOL Team

Reference Data Type Mapping Persistent shape of a class with reference data type member is stored as Datatype@member-classifier Eg.: Reference@P The table column stores the string oid.first : oid.second ( oid.first indicates the entryID – in local link table- corresponding to the ref’s container Token entry, and oid.second indicates the rowID inside the actual ref container ) for the referenced member. The link table - in local db - contains one column (Link id). Link Id stores the container Token for the referenced object. Back… CAT POOL Team

Token Dereferencing Full Token = Container Token + RowID Container Token = TechID + Database + Container = TechID + PFN + Cont_Name = “00000900” + DSN:UserID:Passwd + Cont_Name DSN = IP, PORT, SID, Driver Hence: Full Token = “00000900” +DSN:UserID:Passwd + Cont_Name + RowID Thus any object stored in RDBMS can be located. Back… CAT POOL Team

Illustration: Writing/Reading Cont token=DB+Tech+ContName DB=RemoteDB, Tech=Relational, Cont=Cont_50 Full token=Rel. + ReDB + Cont_50 + 4(RowID) ShapeID for Classes Database Context DSN=OracleWP2 Cont_50 Cont_51 Shapes## User=tomar Passwd=** IP=oradev9 Port=1521 SID=D9 RowID a1 RowID a2 ShapeID pShape Int@P 1 10 1 5:4 2 100 Reference@P 2 5:1 3 18 Links## 3 5:2 4 11 EntryID LinkID Params## 2 Cont token NameValue 3 Cont token PFN 4 Cont token FID 5 Cont token POOL_VSN CAT POOL Team Back…

Typical Table entries Shapes## (on local DB) Back… SHAPEID PSHAPE --------------------------------------------------------------------------------------------------------------------- {ID=4FFF4DBB-FFE4-4F0D-95D7-204737331AD8} {CL=TestClass2} {NCOL=1} {CNT=0} {COL= {{NAME=TestClass2} {CLASS=TestClass2} {TYP=21}{OPT=0}{OFF=0}{SIZ=0}{CNT=1}}} {ID=4FFF4DBB-FFE4-4F0D-95D7 204737331AD7}{CL=TestClass1}{NCOL=1}{CNT=0} {COL={{NAME=TestClass1}{CLASS=TestClass1} {TYP=21}{OPT=0}{OFF=0}{SIZ=0}{CNT=1}}} PSHAPE int@P;int@P;string@P int@P;int@P;string@P;Reference@P CAT POOL Team

(Cont…) Shapes## (on Remote DB) Back… SHAPEID PSHAPE ---------------------------------------------------------------------------------------------------------------- {ID=4FFF4DBB-FFE4-4F0D-95D7-204737331AD8} {CL=TestClass2} {NCOL=1} {CNT=0} {COL= {{NAME=TestClass2} {CLASS=TestClass2} {TYP=21}{OPT=0}{OFF=0}{SIZ=0}{CNT=1}}} PSHAPE int@P;int@P;string@P int@P;int@P;string@P;Reference@P CAT POOL Team

(Cont…) Links## (on local DB) Back… LINKID --------------------------------------------------------------------------------------------------- [DB=<localDB>][CNT=##Params][CLID=DA8F479C-09BC-49D4-94BC-99D025A23A3B][TECH=00000900][OID=00000002-FFFFFFFF] [DB=<localDB>][CNT=cont_50][CLID=4FFF4DBB-FFE2-4F0D-95D7-204737331AD8][TECH=00000900][OID=00000003-FFFFFFFF] [DB=<localDB>][CNT=cont_51][CLID=4FFF4DBB-FFE2-4F0D-95D7-204737331AD7][TECH=00000900][OID=00000004-FFFFFFFF] [DB=B2992387-E882-D811-81CF-00D0B7B86B36] [CNT=cont_50] [CLID=4FFF4DBB-FFE2-4F0D-95D7-204737331AD8] [TECH=00000900][OID=00000005-00000000] CAT POOL Team

(Cont…) Links## (on remote DB) Back… LINKID ------------------------------------------------------------------------- [DB=<localDB>][CNT=##Params][CLID=DA8F479C-09BC-49D4-94BC-99D025A23A3B] [TECH=00000900] [OID=00000002-FFFFFFFF] [DB=<localDB>][CNT=cont_50][CLID=4FFF4DBB-FFE2-4F0D-95D7-204737331AD8] [TECH=00000900] [OID=00000003-FFFFFFFF] CAT POOL Team

(Cont…) Params## (on local DB) Back… NAMEVALUE ----------------------------------------------------------------------- [NAME=FID][VALUE=B2B6AA42-E882-D811-8CDF-00D0B7B86B36] [NAME=PFN][VALUE=OracleWP2:tomar:catpool] [NAME=POOL_VSN][VALUE=1.1] CAT POOL Team

(Cont…) Params## (on remote DB) Back… NAMEVALUE ----------------------------------------------------------------------- [NAME=FID][VALUE=B2992387-E882-D811-81CF-00D0B7B86B36] [NAME=PFN][VALUE=OracleWP3:tomar2:tomar2] [NAME=POOL_VSN][VALUE=1.1] CAT POOL Team

Storage Manager – Our feedback from implementation for Relational backend Either change names of ##Links, ##Shapes,##Params or provide a function for checking supported grammar for table names, especially for ##Links, ##Shapes and ##Params and then changing names. Provide function for querying access rights of the tables. Provide function for querying transaction capabilities and then force upper layer functions to make use of the database transaction features. Back… CAT POOL Team

Summary POOL Storage Manager passed all “proof-of-concept” tests for Relational backends. We have some feedback on the relational backend specific interface changes in the storage manager, which we will be submitting as a document. Back… CAT POOL Team

Thank You Questions ??? CAT POOL Team