summaryrefslogtreecommitdiffstats
path: root/src/H5FDpublic.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2002-06-05 15:23:20 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2002-06-05 15:23:20 (GMT)
commit6b1208407f5886c917f1ebb38bac058eeb980e30 (patch)
tree6b29e7da66abf76d1ed3e1b7ea52b7a7638f3534 /src/H5FDpublic.h
parentc72c322f6265f121cfd2542f081875f42c9d6fed (diff)
downloadhdf5-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/H5FDpublic.h')
-rw-r--r--src/H5FDpublic.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/H5FDpublic.h b/src/H5FDpublic.h
index 67256b5..49c89bc 100644
--- a/src/H5FDpublic.h
+++ b/src/H5FDpublic.h
@@ -100,6 +100,12 @@ typedef enum H5FD_mem_t {
* http://www.mcs.anl.gov/~thakur/papers/mpio-high-perf.ps.gz
*/
#define H5FD_FEAT_DATA_SIEVE 0x00000004
+ /*
+ * Defining the H5FD_FEAT_AGGREGATE_SMALLDATA for a VFL driver means that
+ * the library will attempt to allocate a larger block for "small" raw data
+ * and then sub-allocate "small" raw data requests from that larger block.
+ */
+#define H5FD_FEAT_AGGREGATE_SMALLDATA 0x00000008
/* Forward declaration */
@@ -164,6 +170,11 @@ struct H5FD_t {
hsize_t cur_meta_block_size; /* Current size of metadata allocation region left */
haddr_t eoma; /*End of metadata allocated region*/
+ /* "Small data" aggregation fields */
+ hsize_t def_sdata_block_size; /* "Small data" allocation block size (if aggregating "small data") */
+ hsize_t cur_sdata_block_size; /* Current size of "small data" allocation region left */
+ haddr_t eosda; /* End of "small data" allocated region */
+
/* Metadata accumulator fields */
unsigned char *meta_accum; /*Buffer to hold the accumulated metadata */
haddr_t accum_loc; /* File location (offset) of the accumulated metadata */