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/H5FDpublic.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/H5FDpublic.h')
-rw-r--r-- | src/H5FDpublic.h | 11 |
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 */ |