HDF5  1.13.0
Group Creation Properties

Functions

herr_t H5Pget_link_creation_order (hid_t plist_id, unsigned *crt_order_flags)
 Queries whether link creation order is tracked and/or indexed in a group. More...
 
herr_t H5Pget_link_phase_change (hid_t plist_id, unsigned *max_compact, unsigned *min_dense)
 Queries the settings for conversion between compact and dense groups. More...
 
herr_t H5Pset_link_creation_order (hid_t plist_id, unsigned crt_order_flags)
 Sets creation order tracking and indexing for links in a group. More...
 
herr_t H5Pset_link_phase_change (hid_t plist_id, unsigned max_compact, unsigned min_dense)
 Sets the parameters for conversion between compact and dense groups. More...
 

Detailed Description

Function Documentation

◆ H5Pget_link_creation_order()

herr_t H5Pget_link_creation_order ( hid_t  plist_id,
unsigned *  crt_order_flags 
)

Queries whether link creation order is tracked and/or indexed in a group.


Parameters
[in]plist_idGroup or file creation property list identifier
[out]crt_order_flagsCreation order flag(s)
Returns
Returns a non-negative value if successful; otherwise returns a negative value.

H5Pget_link_creation_order() queries the group or file creation property list, plist_id, and returns a flag indicating whether link creation order is tracked and/or indexed in a group.

See H5Pset_link_creation_order() for a list of valid creation order flags, as passed in crt_order_flags, and their meanings.

Since
1.8.0

◆ H5Pget_link_phase_change()

herr_t H5Pget_link_phase_change ( hid_t  plist_id,
unsigned *  max_compact,
unsigned *  min_dense 
)

Queries the settings for conversion between compact and dense groups.


Parameters
[in]plist_idGroup creation property list identifier
[out]max_compactMaximum number of links for compact storage
[out]min_denseMinimum number of links for dense storage
Returns
Returns a non-negative value if successful; otherwise returns a negative value.

H5Pget_link_phase_change() queries the maximum number of entries for a compact group and the minimum number of links to require before converting a group to a dense form.

In the compact format, links are stored as messages in the group’s header. In the dense format, links are stored in a fractal heap and indexed with a version 2 B-tree.

max_compact is the maximum number of links to store as header messages in the group header before converting the group to the dense format. Groups that are in the compact format and exceed this number of links are automatically converted to the dense format.

min_dense is the minimum number of links to store in the dense format. Groups which are in dense format and in which the number of links falls below this number are automatically converted back to the compact format.

In the compact format, links are stored as messages in the group’s header. In the dense format, links are stored in a fractal heap and indexed with a version 2 B-tree.

See H5Pset_link_phase_change() for a discussion of traditional, compact, and dense group storage.

Since
1.8.0

◆ H5Pset_link_creation_order()

herr_t H5Pset_link_creation_order ( hid_t  plist_id,
unsigned  crt_order_flags 
)

Sets creation order tracking and indexing for links in a group.


Parameters
[in]plist_idGroup or file creation property list identifier
[out]crt_order_flagsCreation order flag(s)
Returns
Returns a non-negative value if successful; otherwise returns a negative value.

H5Pset_link_creation_order() sets flags for tracking and indexing links on creation order in groups created with the group (or file) creation property list plist_id.

crt_order_flags contains flags with the following meanings:

H5P_CRT_ORDER_TRACKED Link creation order is tracked but not necessarily indexed
H5P_CRT_ORDER_INDEXED Link creation order is indexed (requires H5P_CRT_ORDER_TRACKED)

The default behavior is that links are tracked and indexed by name, and link creation order is neither tracked nor indexed. The name is always the primary index for links in a group.

H5Pset_link_creation_order() can be used to set link creation order tracking, or to set link creation order tracking and indexing.

If (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED) is specified for crt_order_flags, then links will be tracked and indexed by creation order. The creation order is added as a secondary index and enables faster queries and iterations by creation order.

If just H5P_CRT_ORDER_TRACKED is specified for crt_order_flags, then links will be tracked by creation order, but not indexed by creation order. Queries and iterations by creation order will work but will be much slower for large groups than if H5P_CRT_ORDER_INDEXED had been included.

Note
If a creation order index is to be built, it must be specified in the group creation property list. HDF5 currently provides no mechanism to turn on link creation order tracking at group creation time and to build the index later.
Since
1.8.0

◆ H5Pset_link_phase_change()

herr_t H5Pset_link_phase_change ( hid_t  plist_id,
unsigned  max_compact,
unsigned  min_dense 
)

Sets the parameters for conversion between compact and dense groups.


Parameters
[in]plist_idGroup creation property list identifier
[in]max_compactMaximum number of links for compact storage (Default: 8)
[in]min_denseMinimum number of links for dense storage (Default: 6)
Returns
Returns a non-negative value if successful; otherwise returns a negative value.

H5Pset_link_phase_change() sets the maximum number of entries for a compact group and the minimum number of links to allow before converting a dense group back to the compact format.

max_compact is the maximum number of links to store as header messages in the group header before converting the group to the dense format. Groups that are in compact format and which exceed this number of links are automatically converted to dense format.

min_dense is the minimum number of links to store in the dense format. Groups which are in dense format and in which the number of links falls below this threshold are automatically converted to compact format.

Since
1.8.0