Presentation is loading. Please wait.

Presentation is loading. Please wait.

Integrating HDF5 with SRB The HDF5-SRB Architecture Peter Cao, HDF, NCSA February 24, 2005.

Similar presentations


Presentation on theme: "Integrating HDF5 with SRB The HDF5-SRB Architecture Peter Cao, HDF, NCSA February 24, 2005."— Presentation transcript:

1 Integrating HDF5 with SRB The HDF5-SRB Architecture Peter Cao, HDF, NCSA February 24, 2005

2 Project Description Object-level access to HDF5 stored in the SRB Use SRB as middleware to transfer data between the server and client Interactive and efficient access Previous work Extracting entire HDF5 files Extracting byte-streams through the SRB’s POSIX interface

3 The SRB Architecture SRB Client SRB Server MCAT DB2FTPHDF5ObjStore HPSSUnitree Distributed Storage Resources: database system, archival storage system, file system, ftp

4 The HDF5-SRB Architecture SRB Server HDF Application HDF5 Object (File, Group, Dataset, Attribute) HDF5 file HDF5-SRB Module (unpackMsg/packMsg) HDF5 Object (File, Group, Dataset, Attribute) HDF5-SRB Module (unpackMsg/packMsg) MCAT HDF5 Library

5 The HDF5-SRB Module Client API srbObjRequest(void *obj, int objID) Server API srbObjProcess(void *obj, int objID) SRB Server 1. packMsg() 2. unpackMsg() HDF5 Library HDF5 file 3. H5Obj::op() 4. Access file 5. H5Object 6. packMsg() 7. unpackMsg()

6 Implementation Requirement Object fashion Interactive access Data information encapsulated in structure Easy mapping to objects in client application Simple and efficient No complicated packMsg()/unpackMsg() Use one set of objects for both server and client Minimum data to transfer between client and server Pack only required data No redundant member object within an object

7 HDF5 Objects H5Dataset H5Group Client Side Server Side H5Attribute H5File H5Datatype H5Datatspace Data operations implemented on the server side

8 H5File intopID; /* the id of the current operation to take */ char*filename; /* name of the remote file */ intfid; /* file id from H5Fopen() on the server side */ H5GrouprootGroup; /* the root group of the file */ Operations: intH5File_open(H5File file); /* retrieve the file structure */ voidH5File_close(H5File file); /* close all open objects and the file */ intH5File_create (H5File file); /* create a new file*/

9 H5Group intopID; intfid; char*fullpath; /* path + name */ H5Groupparent; intnmembers; H5Objectmembers[]; intnattributes; H5Attibuteattributes[]; Operations: intH5Group_create(H5Group group); intH5Group_delete(H5Group group); typedef struct H5Object_t { enum { H5GROUP, H5DATASET }t; union { struct H5Group; struct H5dataset }u; } H5Object;

10 H5Dataset intopID; intfid; char*fullpath; /* path + name */ H5Datatypedatatype; H5Dataspacedataspace; intnattributes; H5Attibuteattributes[]; void*value; Operations: intH5Dataset_create(H5Dataset dataset); intH5Dataset_delete(H5Dataset dataset); intH5Dataset_read(H5Dataset dataset); intH5Dataset_write(H5Dataset dataset);

11 H5Datatype intopID; intfid; char*owner_name; intclass, size, order; For compound: intnmembers; /* number of flatted members */ char**mnames; /* member names */ intmtypes[nmembers][3]; /* member types (class, size, order) */ Operations:

12 H5Dataspace intopID; intfid; char*owner_name; intrank; uint32dims[]; uint32start[], stride[], count[]; /*hyperslab selection */ Operations:

13 H5Attribute intopID; intfid; char*name; /* the name of the attribute */ char*owner_name; /* the full path of the owner of the attribute */ intowner_ type; /* H5GROUP or H5DATASET */ H5Datatypedatatype; H5Dataspacedataspace; void*value; /* the value of the attribute */ Operations: intH5Attribute_create(H5Attribute attribute); intH5Attribute _delete(H5Attribute attribute); intH5Attribute _read(H5Attribute attribute); intH5Attribute _write(H5Attribute attribute);

14 Implementation Challenge Efficiency of the packMsg/unpackMsg Datatype conversion The Client needs to know the datatype from server The server have to use client datatype to load data Life cycle of object When to close object (dataset, group, file) When to clean memory space Byte stream to transfer large raw data How to pack/unpack VL/compound data

15 Milestone Module specifications RFC02/11/05 Tech. seminar02/24/05 final publication03/04/05 Implementation Compile and install test SRB server 03/18/05 Client-side module 03/31/05 Server-side module04/22/05 Client application05/20/05 Testing and merge source with SDSC07/15/05 Documentation and release 08/31/05

16 Further Work Metadata Ingest srbObjPut() calls the HDF5 ingest program to put file information into MCAT Datacutter searching and filtering HDF5 data HDF5 Indexing store HDF5 indexing table into MCAT

17 Questions/Comments? 1.[Ruth Aydt] what object can be packed in the new srbObjRequest() and srbObjProcess APIs. What are the objIDs, how they are managed 2.[Jae Alameda] what kind of message is transferred through SRB: objects or string message 3.[Mike Folk and other] How to transfer large raw dataset: byte stream or openDAP-g way 4.[Albert Cheng] how to accomplish complex HDF5 request: number of message vs complex message 5. [Elena Pourmal] Is the packMsg()/unpackMsg() part of the current SRB or new functions 6.[Quincey Koziol] When passing objects between client and server, how to ensure to pass fields of the object only need for the operation 7.[Bob Mcgrath] How to manage the life cycle of object on the server side. When client dies, how to close the object on the server (timeout?) 8.[Stuart Levy] Synchronization and locking issues. concurrent access to file and operations on file. File cache and physical file location 9.[Quincey Koziol and other] In general, there were a lot of questions about the message protocol, what parts of the structure are optional, etc.. I would say we need to document the protocol as completely as we can. 10.[Quincey Koziol] How will datatypes of attributes be handled, how will selection from compound datatype [fields of compound] be done. 11.[Joe Futrelle] How MCAT handle complex query from HDF5 or other data 12.[Ruth Aydt] How file access control is handled in HDF5 or SRB 13.Elena had some idea about precomputing some of the messages. Notclear if this is really viable. 14.It would be good to add an example that shows the steps of a simple operation,e.g., open dataset.


Download ppt "Integrating HDF5 with SRB The HDF5-SRB Architecture Peter Cao, HDF, NCSA February 24, 2005."

Similar presentations


Ads by Google