diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2016-12-30 10:22:48 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2016-12-30 10:22:48 (GMT) |
commit | 0610c41c75920b145a144e62df142977b605fc97 (patch) | |
tree | 4012f77323e147b1883a77cb0f0a17605720a1c0 /src/H5Cprivate.h | |
parent | e500f2d3dadd72281bf4f24cbba175c0ed77a3b0 (diff) | |
download | hdf5-0610c41c75920b145a144e62df142977b605fc97.zip hdf5-0610c41c75920b145a144e62df142977b605fc97.tar.gz hdf5-0610c41c75920b145a144e62df142977b605fc97.tar.bz2 |
Bring support for doubly-linked list of all entries in cache from incoming
cache image branch.
Diffstat (limited to 'src/H5Cprivate.h')
-rw-r--r-- | src/H5Cprivate.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/H5Cprivate.h b/src/H5Cprivate.h index 77ebe8a..365fd6c 100644 --- a/src/H5Cprivate.h +++ b/src/H5Cprivate.h @@ -1218,6 +1218,15 @@ typedef int H5C_ring_t; * If there are multiple entries in any hash bin, they are stored in a doubly * linked list. * + * Addendum: JRM -- 10/14/15 + * + * We have come to scan all entries in the cache frequently enough that + * the cost of doing so by scanning the hash table has become unacceptable. + * To reduce this cost, the index now also maintains a doubly linked list + * of all entries in the index. This list is known as the index list. + * The il_next and il_prev fields discussed below were added to support + * the index list. + * * ht_next: Next pointer used by the hash table to store multiple * entries in a single hash bin. This field points to the * next entry in the doubly linked list of entries in the @@ -1228,6 +1237,16 @@ typedef int H5C_ring_t; * previous entry in the doubly linked list of entries in * the hash bin, or NULL if there is no previuos entry. * + * il_next: Next pointer used by the index to maintain a doubly linked + * list of all entries in the index (and thus in the cache). + * This field contains a pointer to the next entry in the + * index list, or NULL if there is no next entry. + * + * il_prev: Prev pointer used by the index to maintain a doubly linked + * list of all entries in the index (and thus in the cache). + * This field contains a pointer to the previous entry in the + * index list, or NULL if there is no previous entry. + * * * Fields supporting replacement policies: * @@ -1382,6 +1401,8 @@ typedef struct H5C_cache_entry_t { /* fields supporting the hash table: */ struct H5C_cache_entry_t *ht_next; struct H5C_cache_entry_t *ht_prev; + struct H5C_cache_entry_t *il_next; + struct H5C_cache_entry_t *il_prev; /* fields supporting replacement policies: */ struct H5C_cache_entry_t *next; |