summaryrefslogtreecommitdiffstats
path: root/src/H5HL.c
diff options
context:
space:
mode:
authorJohn Mainzer <mainzer@hdfgroup.org>2008-01-18 17:52:12 (GMT)
committerJohn Mainzer <mainzer@hdfgroup.org>2008-01-18 17:52:12 (GMT)
commitd236e2a9926cc62048d9489a60ab0d5f4dfcd41c (patch)
tree0ed0d874bd62c7d8453082bb4186d6b5f640fc86 /src/H5HL.c
parent1039d639520e92455b01850095bd94664ff4de53 (diff)
downloadhdf5-d236e2a9926cc62048d9489a60ab0d5f4dfcd41c.zip
hdf5-d236e2a9926cc62048d9489a60ab0d5f4dfcd41c.tar.gz
hdf5-d236e2a9926cc62048d9489a60ab0d5f4dfcd41c.tar.bz2
[svn-r14442] Modified metadata cache to adapt more quickly to the insertion of a
large entry, or to a large increases in the size of an existing entry. This required some additions to the cache configuration structure, and thus will require changes in the metadata cache documentation. The basic idea is to monitor the size of entries as they are loaded, inserted, or increased in size. If the size of the entry (or increase) exceeds some user selected fraction of the size of the cache, increase the size of the cache. Note that this fix was designed quickly -- while it deals with the use case that exposed the problem, we may have to revisit the issue later. Tested serial and parallel on Phoenix, and h5committest.
Diffstat (limited to 'src/H5HL.c')
-rw-r--r--src/H5HL.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/H5HL.c b/src/H5HL.c
index 20cac4e..358816b 100644
--- a/src/H5HL.c
+++ b/src/H5HL.c
@@ -967,6 +967,9 @@ H5HL_insert(H5F_t *f, hid_t dxpl_id, H5HL_t *heap, size_t buf_size, const void *
need_more = need_size;
new_heap_alloc = heap->heap_alloc + need_more;
+#if 0 /* JRM */ /* delete this once we are convinced that the general
+ * fix will do the job.
+ */
/*
* XXX: This is a _total_ hack, a real kludge. :-/ The metadata cache currently
* responds very poorly when an object is inserted into the cache (or
@@ -1002,6 +1005,7 @@ H5HL_insert(H5F_t *f, hid_t dxpl_id, H5HL_t *heap, size_t buf_size, const void *
HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, (size_t)-1, "H5AC_set_cache_auto_resize_config() failed.")
} /* end if */
}
+#endif /* JRM */
HDassert(heap->heap_alloc < new_heap_alloc);
H5_CHECK_OVERFLOW(heap->heap_alloc, size_t, hsize_t);
H5_CHECK_OVERFLOW(new_heap_alloc, size_t, hsize_t);