diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2002-06-05 15:23:20 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2002-06-05 15:23:20 (GMT) |
commit | 6b1208407f5886c917f1ebb38bac058eeb980e30 (patch) | |
tree | 6b29e7da66abf76d1ed3e1b7ea52b7a7638f3534 /src/H5Fprivate.h | |
parent | c72c322f6265f121cfd2542f081875f42c9d6fed (diff) | |
download | hdf5-6b1208407f5886c917f1ebb38bac058eeb980e30.zip hdf5-6b1208407f5886c917f1ebb38bac058eeb980e30.tar.gz hdf5-6b1208407f5886c917f1ebb38bac058eeb980e30.tar.bz2 |
[svn-r5536] Purpose:
New feature.
Description:
Added a "small data" block allocation mechanism to the library, similar to
the mechanism used for allocating metadata currently.
See the RFC for more details:
http://hdf.ncsa.uiuc.edu/RFC/SmallData/SmallData.html
This reduces the number of I/O operations which hit the disk for my test
program from 19 to 15 (i.e. from 393 to 15, overall).
Platforms tested:
Solaris 2.7 (arabica) w/FORTRAN and FreeBSD 4.5 (sleipnir) w/C++
Diffstat (limited to 'src/H5Fprivate.h')
-rw-r--r-- | src/H5Fprivate.h | 80 |
1 files changed, 43 insertions, 37 deletions
diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h index 42af604..c18c331 100644 --- a/src/H5Fprivate.h +++ b/src/H5Fprivate.h @@ -253,66 +253,72 @@ __DLL__ size_t H5F_sizeof_size(const H5F_t *f); /* ========= File Access properties ============ */ /* Definitions for size of meta data cache(elements) */ -#define H5F_ACS_META_CACHE_SIZE_NAME "mdc_nelmts" -#define H5F_ACS_META_CACHE_SIZE_SIZE sizeof(int) -#define H5F_ACS_META_CACHE_SIZE_DEF H5AC_NSLOTS +#define H5F_ACS_META_CACHE_SIZE_NAME "mdc_nelmts" +#define H5F_ACS_META_CACHE_SIZE_SIZE sizeof(int) +#define H5F_ACS_META_CACHE_SIZE_DEF H5AC_NSLOTS /* Definitions for size of raw data chunk cache(elements) */ -#define H5F_ACS_DATA_CACHE_ELMT_SIZE_NAME "rdcc_nelmts" -#define H5F_ACS_DATA_CACHE_ELMT_SIZE_SIZE sizeof(size_t) -#define H5F_ACS_DATA_CACHE_ELMT_SIZE_DEF 521 +#define H5F_ACS_DATA_CACHE_ELMT_SIZE_NAME "rdcc_nelmts" +#define H5F_ACS_DATA_CACHE_ELMT_SIZE_SIZE sizeof(size_t) +#define H5F_ACS_DATA_CACHE_ELMT_SIZE_DEF 521 /* Definition for size of raw data chunk cache(bytes) */ -#define H5F_ACS_DATA_CACHE_BYTE_SIZE_NAME "rdcc_nbytes" -#define H5F_ACS_DATA_CACHE_BYTE_SIZE_SIZE sizeof(size_t) -#define H5F_ACS_DATA_CACHE_BYTE_SIZE_DEF 1024*1024 +#define H5F_ACS_DATA_CACHE_BYTE_SIZE_NAME "rdcc_nbytes" +#define H5F_ACS_DATA_CACHE_BYTE_SIZE_SIZE sizeof(size_t) +#define H5F_ACS_DATA_CACHE_BYTE_SIZE_DEF 1024*1024 /* Definition for preemption read chunks first */ -#define H5F_ACS_PREEMPT_READ_CHUNKS_NAME "rdcc_w0" -#define H5F_ACS_PREEMPT_READ_CHUNKS_SIZE sizeof(double) -#define H5F_ACS_PREEMPT_READ_CHUNKS_DEF 0.75 +#define H5F_ACS_PREEMPT_READ_CHUNKS_NAME "rdcc_w0" +#define H5F_ACS_PREEMPT_READ_CHUNKS_SIZE sizeof(double) +#define H5F_ACS_PREEMPT_READ_CHUNKS_DEF 0.75 /* Definition for threshold for alignment */ -#define H5F_ACS_ALIGN_THRHD_NAME "threshold" -#define H5F_ACS_ALIGN_THRHD_SIZE sizeof(hsize_t) -#define H5F_ACS_ALIGN_THRHD_DEF 1 +#define H5F_ACS_ALIGN_THRHD_NAME "threshold" +#define H5F_ACS_ALIGN_THRHD_SIZE sizeof(hsize_t) +#define H5F_ACS_ALIGN_THRHD_DEF 1 /* Definition for alignment */ -#define H5F_ACS_ALIGN_NAME "align" -#define H5F_ACS_ALIGN_SIZE sizeof(hsize_t) -#define H5F_ACS_ALIGN_DEF 1 +#define H5F_ACS_ALIGN_NAME "align" +#define H5F_ACS_ALIGN_SIZE sizeof(hsize_t) +#define H5F_ACS_ALIGN_DEF 1 -/* Definition for minimum metadata allocation block size(when +/* Definition for minimum metadata allocation block size (when aggregating metadata allocations. */ -#define H5F_ACS_META_BLOCK_SIZE_NAME "meta_block_size" -#define H5F_ACS_META_BLOCK_SIZE_SIZE sizeof(size_t) -#define H5F_ACS_META_BLOCK_SIZE_DEF 2048 +#define H5F_ACS_META_BLOCK_SIZE_NAME "meta_block_size" +#define H5F_ACS_META_BLOCK_SIZE_SIZE sizeof(hsize_t) +#define H5F_ACS_META_BLOCK_SIZE_DEF 2048 /* Definition for maximum sieve buffer size (when data sieving is allowed by file driver */ -#define H5F_ACS_SIEVE_BUF_SIZE_NAME "sieve_buf_size" -#define H5F_ACS_SIEVE_BUF_SIZE_SIZE sizeof(size_t) -#define H5F_ACS_SIEVE_BUF_SIZE_DEF 64*1024 +#define H5F_ACS_SIEVE_BUF_SIZE_NAME "sieve_buf_size" +#define H5F_ACS_SIEVE_BUF_SIZE_SIZE sizeof(size_t) +#define H5F_ACS_SIEVE_BUF_SIZE_DEF 64*1024 + +/* Definition for minimum "small data" allocation block size (when + aggregating "small" raw data allocations. */ +#define H5F_ACS_SDATA_BLOCK_SIZE_NAME "sdata_block_size" +#define H5F_ACS_SDATA_BLOCK_SIZE_SIZE sizeof(hsize_t) +#define H5F_ACS_SDATA_BLOCK_SIZE_DEF 2048 /* Definition for garbage-collect references */ -#define H5F_ACS_GARBG_COLCT_REF_NAME "gc_ref" -#define H5F_ACS_GARBG_COLCT_REF_SIZE sizeof(unsigned) -#define H5F_ACS_GARBG_COLCT_REF_DEF 0 +#define H5F_ACS_GARBG_COLCT_REF_NAME "gc_ref" +#define H5F_ACS_GARBG_COLCT_REF_SIZE sizeof(unsigned) +#define H5F_ACS_GARBG_COLCT_REF_DEF 0 /* Definition for file driver ID */ -#define H5F_ACS_FILE_DRV_ID_NAME "driver_id" -#define H5F_ACS_FILE_DRV_ID_SIZE sizeof(hid_t) -#define H5F_ACS_FILE_DRV_ID_DEF H5FD_SEC2 +#define H5F_ACS_FILE_DRV_ID_NAME "driver_id" +#define H5F_ACS_FILE_DRV_ID_SIZE sizeof(hid_t) +#define H5F_ACS_FILE_DRV_ID_DEF H5FD_SEC2 /* Definition for file driver info */ -#define H5F_ACS_FILE_DRV_INFO_NAME "driver_info" -#define H5F_ACS_FILE_DRV_INFO_SIZE sizeof(void*) -#define H5F_ACS_FILE_DRV_INFO_DEF NULL +#define H5F_ACS_FILE_DRV_INFO_NAME "driver_info" +#define H5F_ACS_FILE_DRV_INFO_SIZE sizeof(void*) +#define H5F_ACS_FILE_DRV_INFO_DEF NULL /* Definition for file close degree */ -#define H5F_CLOSE_DEGREE_NAME "close_degree" -#define H5F_CLOSE_DEGREE_SIZE sizeof(H5F_close_degree_t) -#define H5F_CLOSE_DEGREE_DEF H5F_CLOSE_DEFAULT +#define H5F_CLOSE_DEGREE_NAME "close_degree" +#define H5F_CLOSE_DEGREE_SIZE sizeof(H5F_close_degree_t) +#define H5F_CLOSE_DEGREE_DEF H5F_CLOSE_DEFAULT /* ======================== File Mount properties ====================*/ /* Definition for whether absolute symlinks local to file. */ |