Enable data sieving for chunks that can't be cached
Fixed an issue that prevented use of a data sieve buffer for I/O on dataset chunks when those chunks couldn't be cached by the library. This issue could result in worst-case behavior of I/O on a single data element at a time when chunks are non-contiguous with respect to memory layout.
Added a test to attempt to catch performance regressions in I/O on dataset chunks that are non-contiguous with respect to memory layout
Updated the External File List logic to set the data sieve buffer size to the smaller of the dataset size and the size set in the FAPL, similar to the logic elsewhere in the library
[!IMPORTANT] Re-enable data sieve buffer for non-cached dataset chunks to improve I/O performance and add a test for performance regressions.
- Behavior:
- Re-enable data sieve buffer for I/O on non-cached dataset chunks in
H5D__chunk_read()andH5D__chunk_write()inH5Dchunk.c.- Update
H5D__efl_construct()inH5Defl.cto set sieve buffer size to the smaller of dataset size and FAPL size.- Add test
chunk_non_contig_mem_ioinio_perf.cto catch performance regressions for non-contiguous memory layout chunks.- Misc:
- Update
CHANGELOG.mdto document the performance fix.- Add
io_perftoH5_EXPRESS_TESTSinCMakeLists.txt.This description was created by
for cb2384235fa9d832a1e13b33d10e1633c9673fa5. You can customize this summary. It will automatically update as commits are pushed.