diff options
author | John Mainzer <mainzer@hdfgroup.org> | 2005-04-28 16:40:07 (GMT) |
---|---|---|
committer | John Mainzer <mainzer@hdfgroup.org> | 2005-04-28 16:40:07 (GMT) |
commit | a9ba92287d48568c901ec906b8aaf32ff32076aa (patch) | |
tree | f79047eaf353389a61b3395bab0a169385a6824b /src/H5Cprivate.h | |
parent | 097185980325a30153ceb0090f128a8f4e873a77 (diff) | |
download | hdf5-a9ba92287d48568c901ec906b8aaf32ff32076aa.zip hdf5-a9ba92287d48568c901ec906b8aaf32ff32076aa.tar.gz hdf5-a9ba92287d48568c901ec906b8aaf32ff32076aa.tar.bz2 |
[svn-r10688] Purpose:
Add API calls allowing user control of the metadata cache.
Description:
Prior to this update, the metadata cache was not configurable
from outside the library.
Solution:
Add API calls allowing the user to configure the metadata cache
either at file open time, or for any open file. Also added calls
permitting the user to monitor cache size and hit rate. These
latter facilities are needed for "manual" cache size control
Platforms tested:
h5committested
Misc. update:
Diffstat (limited to 'src/H5Cprivate.h')
-rw-r--r-- | src/H5Cprivate.h | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/src/H5Cprivate.h b/src/H5Cprivate.h index 7830b26..9f8dd78 100644 --- a/src/H5Cprivate.h +++ b/src/H5Cprivate.h @@ -459,7 +459,7 @@ typedef struct H5C_cache_entry_t * cache size from the old if a cache size increment is triggered. * The increment must be greater than 1.0, and should not exceed 2.0. * - * The new cache size is obtained my multiplying the current max cache + * The new cache size is obtained by multiplying the current max cache * size by the increment, and then clamping to max_size and to stay * within the max_increment as necessary. * @@ -559,9 +559,23 @@ typedef struct H5C_cache_entry_t * ****************************************************************************/ +#define H5C_RESIZE_CFG__VALIDATE_GENERAL 0x1 +#define H5C_RESIZE_CFG__VALIDATE_INCREMENT 0x2 +#define H5C_RESIZE_CFG__VALIDATE_DECREMENT 0x4 +#define H5C_RESIZE_CFG__VALIDATE_INTERACTIONS 0x8 +#define H5C_RESIZE_CFG__VALIDATE_ALL \ +( \ + H5C_RESIZE_CFG__VALIDATE_GENERAL | \ + H5C_RESIZE_CFG__VALIDATE_INCREMENT | \ + H5C_RESIZE_CFG__VALIDATE_DECREMENT | \ + H5C_RESIZE_CFG__VALIDATE_INTERACTIONS \ +) + #define H5C__CURR_AUTO_SIZE_CTL_VER 1 #define H5C__CURR_AUTO_RESIZE_RPT_FCN_VER 1 +#define H5C__MAX_EPOCH_MARKERS 10 + #define H5C__DEF_AR_UPPER_THRESHHOLD 0.9999 #define H5C__DEF_AR_LOWER_THRESHHOLD 0.9 #define H5C__DEF_AR_MAX_SIZE ((size_t)(16 * 1024 * 1024)) @@ -590,20 +604,6 @@ enum H5C_resize_status not_full }; /* enum H5C_resize_conditions */ -enum H5C_cache_incr_mode -{ - H5C_incr__off, - H5C_incr__threshold -}; - -enum H5C_cache_decr_mode -{ - H5C_decr__off, - H5C_decr__threshold, - H5C_decr__age_out, - H5C_decr__age_out_with_threshold -}; - typedef void (*H5C_auto_resize_rpt_fcn)(H5C_t * cache_ptr, int32_t version, double hit_rate, @@ -612,6 +612,7 @@ typedef void (*H5C_auto_resize_rpt_fcn)(H5C_t * cache_ptr, size_t new_max_cache_size, size_t old_min_clean_size, size_t new_min_clean_size); + typedef struct H5C_auto_size_ctl_t { /* general configuration fields: */ @@ -768,5 +769,8 @@ H5_DLL herr_t H5C_unprotect(H5F_t * f, void * thing, unsigned int flags); +H5_DLL herr_t H5C_validate_resize_config(H5C_auto_size_ctl_t * config_ptr, + unsigned int tests); + #endif /* !_H5Cprivate_H */ |