- Created by Mike McGreevy, last modified by Barbara Jones on Jul 22, 2020
H5F_GET_MDC_CONFIG
Obtains current metadata cache configuration for target file
Procedure:
H5F_GET_MDC_CONFIG ( file_id, config_ptr )
Signature:
herr_t H5Fget_mdc_config(hid_t file_id, H5AC_cache_config_t *config_ptr)
Parameters:
hid_t file_id | IN: Identifier of the target file |
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 this 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 disabled ( 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 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 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 set to 1 . 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 are enabled. |
hbool_t set_initial_size | OUT: Boolean flag indicating whether the cache should be created with a user specified initial maximum size. If the configuration is loaded from the cache, this flag will always be set to |
size_t initial_size | OUT: Initial maximum size of the cache in bytes, if applicable. If the configuration is loaded from the cache, this field will contain the cache maximum size as of the time of the call. |
double min_clean_fraction | OUT: Float value specifying 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. |
long 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. |
Description:
H5F_GET_MDC_CONFIG loads the current metadata cache configuration into the instance of H5AC_cache_config_t
pointed to by the config_ptr
parameter.
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 manual for details on metadata cache configuration. 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 | Function added in this release. |
--- Last Modified: July 22, 2020 | 02:37 PM