diff options
author | mainzer <mainzer#hdfgroup.org> | 2020-08-05 20:39:49 (GMT) |
---|---|---|
committer | mainzer <mainzer#hdfgroup.org> | 2020-08-05 20:39:49 (GMT) |
commit | 33f35183cbfdde70ee8f803acb5b735ad4dfe086 (patch) | |
tree | e18d05c2c6b34f4baba1d4b28250dc4cf9d51171 /src/H5ACprivate.h | |
parent | 50f404c887118577034c6412aeaaa1f6db2fe475 (diff) | |
download | hdf5-33f35183cbfdde70ee8f803acb5b735ad4dfe086.zip hdf5-33f35183cbfdde70ee8f803acb5b735ad4dfe086.tar.gz hdf5-33f35183cbfdde70ee8f803acb5b735ad4dfe086.tar.bz2 |
When flushing, the metadata cache attempts to flush entries in increasing
address order. To facilitate this, the metadata cache needs a list of
of dirty entries in increasing address order. This is implemented via a
skip list of all dirty entries in the cache.
To date this skip list has been maintained at all times.
However, profiling indicates that we can avoid significant overhead by
constructing the skip list of dirty entries just before a flush, taking
it down afterwareds, and not maintaining it during normal operation.
This commit implements this optimization for both serial and parallel.
Tested serial and parallel, debug and production on charis and jelly.
Diffstat (limited to 'src/H5ACprivate.h')
-rw-r--r-- | src/H5ACprivate.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/H5ACprivate.h b/src/H5ACprivate.h index b932e16..21e7396 100644 --- a/src/H5ACprivate.h +++ b/src/H5ACprivate.h @@ -387,6 +387,8 @@ H5_DLL herr_t H5AC_insert_entry(H5F_t *f, const H5AC_class_t *type, haddr_t addr, void *thing, unsigned int flags); H5_DLL herr_t H5AC_pin_protected_entry(void *thing); H5_DLL herr_t H5AC_prep_for_file_close(H5F_t *f); +H5_DLL herr_t H5AC_prep_for_file_flush(H5F_t *f); +H5_DLL herr_t H5AC_secure_from_file_flush(H5F_t *f); H5_DLL herr_t H5AC_create_flush_dependency(void *parent_thing, void *child_thing); H5_DLL void * H5AC_protect(H5F_t *f, const H5AC_class_t *type, haddr_t addr, void *udata, unsigned flags); |