summaryrefslogtreecommitdiffstats
path: root/test/istore.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2003-02-10 17:26:09 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2003-02-10 17:26:09 (GMT)
commit24d8506dd564c5cc0fdebb5ebdfaec7bda5a7435 (patch)
tree6b2eb3bb1e782c40718204882428e6471b6281ac /test/istore.c
parent738661ab9f409b8d961ba1402d6c4dd5f99ecb43 (diff)
downloadhdf5-24d8506dd564c5cc0fdebb5ebdfaec7bda5a7435.zip
hdf5-24d8506dd564c5cc0fdebb5ebdfaec7bda5a7435.tar.gz
hdf5-24d8506dd564c5cc0fdebb5ebdfaec7bda5a7435.tar.bz2
[svn-r6387] Purpose:
Bug Fix Description: Metadata cache in parallel I/O can cause hangs in applications which perform independent I/O on chunked datasets, because the metadata cache can attempt to flush out dirty metadata from only a single process, instead of collectively from all processes. Solution: Pass a dataset transfer property list down from every API function which could possibly trigger metadata I/O. Then, split the metadata cache into two sets of entries to allow dirty metadata to be set aside when a hash table collision occurs during independent I/O. Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir) serial & parallel Misc. update: Updated release_docs/RELEASE
Diffstat (limited to 'test/istore.c')
-rw-r--r--test/istore.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/test/istore.c b/test/istore.c
index 3dfb8cf..3f1e16e 100644
--- a/test/istore.c
+++ b/test/istore.c
@@ -101,7 +101,7 @@ new_object(H5F_t *f, const char *name, unsigned ndims, H5G_entry_t *ent/*out*/)
/* Create the object header */
HDmemset(ent,0,sizeof(H5G_entry_t));
- if (H5O_create(f, 64, ent)) {
+ if (H5O_create(f, H5P_DATASET_XFER_DEFAULT, 64, ent)) {
H5_FAILED();
puts(" H5O_create() = NULL");
goto error;
@@ -118,15 +118,15 @@ new_object(H5F_t *f, const char *name, unsigned ndims, H5G_entry_t *ent/*out*/)
}
}
/* Create the root of the B-tree that describes chunked storage */
- H5F_istore_create (f, &layout/*in,out*/);
- if (H5O_modify(ent, H5O_LAYOUT, H5O_NEW_MESG, 0, 1, &layout) < 0) {
+ H5F_istore_create (f, H5P_DATASET_XFER_DEFAULT, &layout/*in,out*/);
+ if (H5O_modify(ent, H5O_LAYOUT, H5O_NEW_MESG, 0, 1, &layout, H5P_DATASET_XFER_DEFAULT) < 0) {
H5_FAILED();
puts(" H5O_modify istore message failure.");
goto error;
}
/* Give the object header a name */
- if (H5G_insert(H5G_entof(H5G_rootof(f)), name, ent) < 0) {
+ if (H5G_insert(H5G_entof(H5G_rootof(f)), name, ent, H5P_DATASET_XFER_DEFAULT) < 0) {
H5_FAILED();
printf(" H5G_insert(f, name=\"%s\", ent) failed\n", name);
goto error;
@@ -247,7 +247,7 @@ test_extend(H5F_t *f, const char *prefix,
printf(" Cannot create %u-d object `%s'\n", ndims, name);
goto error;
}
- if (NULL == H5O_read(&handle, H5O_LAYOUT, 0, &layout)) {
+ if (NULL == H5O_read(&handle, H5O_LAYOUT, 0, &layout, H5P_DATASET_XFER_DEFAULT)) {
H5_FAILED();
puts(" Unable to read istore message.");
goto error;
@@ -456,7 +456,7 @@ test_sparse(H5F_t *f, const char *prefix, size_t nblocks,
printf(" Cannot create %u-d object `%s'\n", ndims, name);
goto error;
}
- if (NULL == H5O_read(&handle, H5O_LAYOUT, 0, &layout)) {
+ if (NULL == H5O_read(&handle, H5O_LAYOUT, 0, &layout, H5P_DATASET_XFER_DEFAULT)) {
H5_FAILED();
printf(" Unable to read istore message\n");
goto error;