diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2010-03-24 16:42:54 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2010-03-24 16:42:54 (GMT) |
commit | a4dad549967a4ae9a959053876789cde6cb5daa4 (patch) | |
tree | 7b17ac6f487bee02284ab02e0e3b79a329aedfdf /src/H5Dpkg.h | |
parent | a844f8b21a92352a69afd12241826f918544e7f0 (diff) | |
download | hdf5-a4dad549967a4ae9a959053876789cde6cb5daa4.zip hdf5-a4dad549967a4ae9a959053876789cde6cb5daa4.tar.gz hdf5-a4dad549967a4ae9a959053876789cde6cb5daa4.tar.bz2 |
[svn-r18446] Purpose: Fix bug 1637
Description:
Modified algorithm for extending a dataset with early allocation so it only
deals with the new chunks. Formerly, it would loop over all chunks, checking
to see if each existed in cache and on disk, causing major performance issues
with large numbers of chunks.
Tested: jam, linew, amani (h5committest)
Diffstat (limited to 'src/H5Dpkg.h')
-rw-r--r-- | src/H5Dpkg.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 9fde879..38f1ab4 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -526,7 +526,7 @@ H5_DLL H5D_t *H5D_create_named(const H5G_loc_t *loc, const char *name, H5_DLL herr_t H5D_get_space_status(H5D_t *dset, H5D_space_status_t *allocation, hid_t dxpl_id); H5_DLL herr_t H5D_alloc_storage(H5D_t *dset, hid_t dxpl_id, H5D_time_alloc_t time_alloc, - hbool_t full_overwrite); + hbool_t full_overwrite, hsize_t old_dim[]); H5_DLL hsize_t H5D_get_storage_size(H5D_t *dset, hid_t dxpl_id); H5_DLL haddr_t H5D_get_offset(const H5D_t *dset); H5_DLL herr_t H5D_iterate(void *buf, hid_t type_id, const H5S_t *space, @@ -608,7 +608,8 @@ H5_DLL herr_t H5D_chunk_unlock(const H5D_io_info_t *io_info, const H5D_chunk_ud_t *udata, hbool_t dirty, unsigned idx_hint, void *chunk, uint32_t naccessed); H5_DLL herr_t H5D_chunk_allocated(H5D_t *dset, hid_t dxpl_id, hsize_t *nbytes); -H5_DLL herr_t H5D_chunk_allocate(H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite); +H5_DLL herr_t H5D_chunk_allocate(H5D_t *dset, hid_t dxpl_id, + hbool_t full_overwrite, hsize_t old_dim[]); H5_DLL herr_t H5D_chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dims); #ifdef H5_HAVE_PARALLEL |