B-tree to offset mapping

Hello,
HDF5 stores all information about objects in memory in a B-tree. When it writes data out to a file on disk, there should be a mapping between the b-tree and the actual offsets in file where the objects are stored. Is there some documentation where this mapping is explained? For example, if I have an HDF5 file with a root group and two datasets,
what are the exact offsets in the hdf5 file where the datasets get stored? At what offsets can I find their headers?

I looked (briefly) at the file format specification, it talks about the various header formats etc., but I dont think it talks about object-->offset mapping.

Thanks for your help,
Kshitij

It must be there somewhere. 'h5ls -v -a' gives an 'address'.

If you trace h5ls you quickly come to H5Ddebug() with the comment
"This function is not to be documented in the API at this time."

I guess if we talk about H5Debug, Quincey will "pay us a visit" and we
won't be heard from again?

Well, take a look at H5Ddebug and I think you'll find the information
you need. It involves directly de-referencing internal hdf5
structures, but hey that's just another way of saying "adventure".

==rob

ยทยทยท

On Fri, Jun 29, 2012 at 04:30:49PM -0600, Kshitij Mehta wrote:

Hello,
HDF5 stores all information about objects in memory in a B-tree. When it writes data out to a file on disk, there should be a mapping between the b-tree and the actual offsets in file where the objects are stored. Is there some documentation where this mapping is explained? For example, if I have an HDF5 file with a root group and two datasets,
what are the exact offsets in the hdf5 file where the datasets get stored? At what offsets can I find their headers?

I looked (briefly) at the file format specification, it talks about the various header formats etc., but I dont think it talks about object-->offset mapping.

--
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA