Optimizing group access

H5PHello all

I am trying to explore my options for optimising group access. The issue I
have is that for some operations users need to traverse a large group tree
and collect information. The structure of the tree is as follows (for each
level N# the number of links is indicated):

N1: 1-500 links
N2: 3 links
N3: 6 links
N4: 10-300 links
N5: 10-50 links
N6: 1 link
N7: 1 link

I need to traverse N1->N2->N3->N4->100-300 N5 links->10-50 N6
links->N7->N8->Dataset attributes.

This traversal takes some time for large examples. I am looking into using
H5Pset_link_phase_change to improve performance, given that once the tree
is created no more data is written into it and applications only read the
data (they might write in other paths but i guess that's OK). The user
documentation of H5Pset_link_phase_change is rather unclear and IMHO
somehow obscurely written (
http://www.hdfgroup.org/HDF5/doc/RM/RM_H5G.html#Group-GroupStyles).
Further, while compact and indexed formats are discussed in the user
manual, compact and dense formats are defined in the reference manual (
http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetLinkPhaseChange)
which is also somehow obscure. Is there a clear explanation of what is
what, any parametric performance results of using these group definitions,
or any experience in the group?

Thanks!

-- Dimitris Servis