diff options
author | Vailin Choi <vchoi@hdfgroup.org> | 2019-02-06 16:49:51 (GMT) |
---|---|---|
committer | Vailin Choi <vchoi@jam.ad.hdfgroup.org> | 2019-02-06 18:02:36 (GMT) |
commit | 29fc6bcd77b0e975d807ecedf16b998493f88bb0 (patch) | |
tree | 252f04ce82bbac557bfe2d564917c05af7b3843d /src/H5Cpkg.h | |
parent | 9063babaaa9b3c11a686ca9faefb70aa2091c21a (diff) | |
download | hdf5-29fc6bcd77b0e975d807ecedf16b998493f88bb0.zip hdf5-29fc6bcd77b0e975d807ecedf16b998493f88bb0.tar.gz hdf5-29fc6bcd77b0e975d807ecedf16b998493f88bb0.tar.bz2 |
Merge pull request #1522 in HDFFV/hdf5 from ~VCHOI/my_hdf5_fork:develop to develop
* commit '7f5741825db0737db5ac46c43009681508a73002':
Add release notes information.
Modification based on feedback from pull request.
Modification based on feedback from pull request.
There is performance issue when closing an object. The slow down is due to the search of the "tag_list" to find out the "corked" status of an object. The fix: (1) Add a counter "num_objs_corked" in the cache structure to track the number of "corked" objects. (2) Skip the search of "tag_list" if the counter is zero i.e. no "corked" objects.
Conflicts:
release_docs/RELEASE.txt
Diffstat (limited to 'src/H5Cpkg.h')
-rw-r--r-- | src/H5Cpkg.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/H5Cpkg.h b/src/H5Cpkg.h index 9201afb..9156c0d 100644 --- a/src/H5Cpkg.h +++ b/src/H5Cpkg.h @@ -3823,6 +3823,13 @@ typedef struct H5C_tag_info_t { * * ignore_tags: Boolean flag to disable tag validation during entry insertion. * + * num_objs_corked: Unsigned integer field containing the number of objects + * that are "corked". The "corked" status of an object is + * found by searching the "tag_list". This field is added + * for optimization so that the skip list search on "tag_list" + * can be skipped if this field is zero, i.e. no "corked" + * objects. + * * When a cache entry is protected, it must be removed from the LRU * list(s) as it cannot be either flushed or evicted until it is unprotected. * The following fields are used to implement the protected list (pl). @@ -4693,6 +4700,7 @@ struct H5C_t { /* Fields for maintaining list of tagged entries */ H5SL_t * tag_list; hbool_t ignore_tags; + uint32_t num_objs_corked; /* Fields for tracking protected entries */ uint32_t pl_len; |