Download presentation
Presentation is loading. Please wait.
Published byAustin Reed Modified over 9 years ago
1
G.Govi CERN/IT-DB 1GridPP7 June30 - July 2, 2003 Data Storage with the POOL persistency framework Motivation Strategy Storage model Storage operation Summary Giacomo Govi PPARC-LCG, CERN IT/DB
2
G.Govi CERN/IT-DB 2GridPP7 June30 - July 2, 2003 Motivation Provide storage and retrieval of C++ objects No intrusion into experiments data models Support for various type of data Event data, Detector data, Analysis data Different volumes Different access pattern Persistency technology may change over time Different technologies may be used at the same time Avoid to bind to a single choice Physics software should be independent from the underlying data storage technology
3
G.Govi CERN/IT-DB 3GridPP7 June30 - July 2, 2003 Strategy Hide any technology details for the clients Clients deal with objects or object references Leave Transient data representation free from ‘knowledge’ about persistency Each technology can be handled transparently Run-time binding of transient data to the underlying technology
4
G.Govi CERN/IT-DB 4GridPP7 June30 - July 2, 2003 Strategy (cont’d) Objects maintain their state when made persistent Allow for queries, selections and independent element access Backend layers built on the technology Use object feature when supported - need to be instructed Split into primitives if no object support – need full access to member data Need for object description: “dictionary”
5
G.Govi CERN/IT-DB 5GridPP7 June30 - July 2, 2003 Storage scheme Define a model for an object storage system: identifying commonalties among different technologies Adapts to any technology with direct record access Need to know record identifier in advance RDBMS: More or less traditional Primary key must be uniquely determined before writing
6
G.Govi CERN/IT-DB 6GridPP7 June30 - July 2, 2003 Persistency model Objects & referencesObjects, object IDs, DBs C++ pointer >> object ID Persistent Transient
7
G.Govi CERN/IT-DB 7GridPP7 June30 - July 2, 2003 Storage functions Write objects Return a unique identifier of their ‘address’ in the database (Token) Read back/ modify/ delete stored objects Localize objects in the database using the Tokens Support of object association Provide a transparent way to navigate into object references Available: Root I/O backend
8
G.Govi CERN/IT-DB 8GridPP7 June30 - July 2, 2003 Components breakdown Data Service Ref Cache Data Service Ref Cache ClientClient Persistency Service Storage Service Storage Service CLIENT SIDEPOOL SIDE LCGDictionaryLCGDictionary
9
G.Govi CERN/IT-DB 9GridPP7 June30 - July 2, 2003 Dictionary generation Technology dependent.h ROOTCINT CINT dictionary code Dictionary Generation CINT dictionary I/O Data I/O GCC-XML LCG dictionary code.xml Code Generator LCG dictionary Gateway Reflection Other Clients
10
G.Govi CERN/IT-DB 10GridPP7 June30 - July 2, 2003 Data Access through Reference References are implemented as smart pointers Maintain access to the embedded class members Provide services to handle persistency Take care of the memory clean up Reference in the object cache Access to persistency service Ref<T>Ref<T> Pointer to object Dereference
11
G.Govi CERN/IT-DB 11GridPP7 June30 - July 2, 2003 Cache Access by Smart Pointer Data Service object cache … TokenObject Persistency Service Object type Storage type Persistent Reference T o k e n Cache Ref Data Service Pointer Ref File Catalog
12
G.Govi CERN/IT-DB 12GridPP7 June30 - July 2, 2003 Data operation: WRITE Storage Service Storage Service Start Transaction Commit Transaction Persistency Service Object Cache ClientClient Data Service cache->transaction().start(...); refA.mark_write(placement);... refC.mark_write(placement); cache->transaction().commit(); Ref mark for write
13
G.Govi CERN/IT-DB 13GridPP7 June30 - July 2, 2003 Data operation: READ/UPDATE/DELETE Storage Service Storage Service Start Transaction Commit Transaction Persistency Service Object Cache ClientClient Data Service cache->transaction().start(...); refA->myMethod(); refB.mark_update(); refC.mark_delete(); cache->transaction().commit(); Ref. mark for update Ref. mark for delete Ref<A>Ref<A> Tokens
14
G.Govi CERN/IT-DB 14GridPP7 June30 - July 2, 2003 Link ID Link Info DB/Cont.name,...... Local lookup table in each file TokenObject Reference Follow Object Associations Entry ID Link ID
15
G.Govi CERN/IT-DB 15GridPP7 June30 - July 2, 2003 Summary The POOL framework provides persistency services with a generic store technology The POOL model can be applied to other technologies based on database files, collections and objects within collections POOL allows the client to choose technologies according to their needs Root I/O backend implemented Proof-of-concept prototype RDBMS backend started
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.