- Created by Barbara Jones, last modified on Jul 22, 2020
H5P_GET_MDC_CONFIG
Get the current initial metadata cache configuration from the indicated file access property list
Procedure:
H5P_GET_MDC_CONFIG ( plist_id, config_ptr)
Signature:
herr_t H5Pget_mdc_config(hid_t
plist_id, H5AC_cache_config_t *config_ptr)
Parameters:
hid_t plist_id | IN: Identifier of the file access property list |
H5AC_cache_config_t *config_ptr | IN/OUT: Pointer to the instance of H5AC_cache_config_t in which the current metadata cache configuration is to be reported |
The fields of the H5AC_cache_config_t
structure are discussed below:
General configuration section: | |
---|---|
int version | IN: Integer field indicating the the version of the H5AC_cache_config_t in use. This field should be set to H5AC__CURR_CACHE_CONFIG_VERSION (defined in H5ACpublic.h). |
hbool_t rpt_fcn_enabled | OUT: Boolean flag indicating whether the adaptive cache resize report function is enabled. This field should almost always be set to 0 (FALSE). Since resize algorithm activity is reported via stdout, it MUST be set to 0 (FALSE) on Windows machines.The report function is not supported code, and can be expected to change between versions of the library. Use it at your own risk. |
hbool_t open_trace_file | OUT: Boolean field indicating whether the trace_file_name field should be used to open a trace file for the cache. This field will always be set to 0 (FALSE) in this context. |
hbool_t close_trace_file | OUT: Boolean field indicating whether the current trace file (if any) should be closed. This field will always be set to 0 (FALSE) in this context. |
char *trace_file_name | OUT: Full path name of the trace file to be opened if the open_trace_file field is 1 (TRUE). This field will always be set to the empty string in this context. |
hbool_t evictions_enabled | OUT: Boolean flag indicating whether metadata cache entry evictions will be enabled when the file is opened / created. |
hbool_t set_initial_size | OUT: Boolean flag indicating whether the cache should be created with a user specified initial maximum size. |
size_t initial_size | OUT: Initial maximum size of the cache in bytes, if applicable. |
double min_clean_fraction | OUT: Float value specifing the minimum fraction of the cache that must be kept either clean or empty when possible. |
size_t max_size | OUT: Upper bound (in bytes) on the range of values that the adaptive cache resize code can select as the maximum cache size. |
size_t min_size | OUT: Lower bound (in bytes) on the range of values that the adaptive cache resize code can select as the maximum cache size. |
int epoch_length | OUT: Number of cache accesses between runs of the adaptive cache resize code. |
Increment configuration section: | |
---|---|
enum H5C_cache_incr_mode incr_mode | OUT: Enumerated value indicating the operational mode of the automatic cache size increase code. At present, only the following values are legal: H5C_incr__off: Automatic cache size increase is disabled. H5C_incr__threshold: Automatic cache size increase is enabled using the hit rate threshold algorithm. |
double lower_hr_threshold | OUT: Hit rate threshold used in the hit rate threshold cache size increase algorithm. |
double increment | OUT: The factor by which the current maximum cache size is multiplied to obtain an initial new maximum cache size if a size increase is triggered in the hit rate threshold cache size increase algorithm. |
hbool_t apply_max_increment | OUT: Boolean flag indicating whether an upper limit will be applied to the size of cache size increases. |
size_t max_increment | OUT: The maximum number of bytes by which the maximum cache size can be increased in a single step -- if applicable. |
enum H5C_cache_flash_incr_mode flash_incr_mode | OUT: Enumerated value indicating the operational mode of the flash cache size increase code. At present, only the following values are legal: H5C_flash_incr__off: Flash cache size increase is disabled. H5C_flash_incr__add_space: Flash cache size increase is enabled using the add space algorithm. |
double flash_threshold | OUT: The factor by which the current maximum cache size is multiplied to obtain the minimum size entry / entry size increase which may trigger a flash cache size increase. |
double flash_multiple | OUT: The factor by which the size of the triggering entry / entry size increase is multiplied to obtain the initial cache size increment. This increment may be reduced to reflect existing free space in the cache and the max_size field above. |
Decrement configuration section: | |
---|---|
enum H5C_cache_decr_mode decr_mode | OUT: Enumerated value indicating the operational mode of the automatic cache size decrease code. At present, the following values are legal: H5C_decr__off: Automatic cache size decrease is disabled, and the remaining decrement fields are ignored. H5C_decr__threshold: Automatic cache size decrease is enabled using the hit rate threshold algorithm. H5C_decr__age_out: Automatic cache size decrease is enabled using the ageout algorithm. H5C_decr__age_out_with_threshold: Automatic cache size decrease is enabled using the ageout with hit rate threshold algorithm |
double upper_hr_threshold | OUT: Upper hit rate threshold. This value is only used if the decr_mode is either H5C_decr__threshold or H5C_decr__age_out_with_threshold. |
double decrement | OUT: Factor by which the current max cache size is multiplied to obtain an initial value for the new cache size when cache size reduction is triggered in the hit rate threshold cache size reduction algorithm. |
hbool_t apply_max_decrement | OUT: Boolean flag indicating whether an upper limit should be applied to the size of cache size decreases. |
size_t max_decrement | OUT: The maximum number of bytes by which cache size can be decreased if any single step, if applicable. |
int epochs_before_eviction | OUT: The minimum number of epochs that an entry must reside unaccessed in cache before being evicted under either of the ageout cache size reduction algorithms. |
hbool_t apply_empty_reserve | OUT: Boolean flag indicating whether an empty reserve should be maintained under either of the ageout cache size reduction algorithms. |
double empty_reserve | OUT: Empty reserve for use with the ageout cache size reduction algorithms, if applicable. |
Parallel configuration section: | |
---|---|
int dirty_bytes_threshold | OUT: Threshold number of bytes of dirty metadata generation for triggering synchronizations of the metadata caches serving the target file in the parallel case. Synchronization occurs whenever the number of bytes of dirty metadata created since the last synchronization exceeds this limit. |
int metadata_write_strategy | OUT: The specified metadata write strategy. |
Description:
H5P_GET_MDC_CONFIG gets the initial metadata cache configuration contained in a file access property list and loads it into the instance of H5AC_cache_config_t
pointed to by the config_ptr
parameter. This configuration is used when the file is opened.
Note that the version field of *config_ptr
must be initialized; this allows the library to support old versions of the H5AC_cache_config_t
structure.
See the overview of the metadata cache in the special topics section of the user guide for details on the configuration data returned. If you haven't read and understood that documentation, the results of this call will not make much sense.
Returns:
Returns a non-negative value if successful; otherwise returns a negative value.
Example:
History:
Release | Change |
---|---|
1.8.0 | C Function introduced in this release. |
--- Last Modified: July 22, 2020 | 09:38 AM