From 7bf3089d110f30e1c42dadba9d039a84dd5bc460 Mon Sep 17 00:00:00 2001 From: Matthew Larson Date: Thu, 25 Sep 2025 15:13:49 -0500 Subject: [PATCH 1/2] Add CHANGELOG note for delayed layout copy --- release_docs/CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/release_docs/CHANGELOG.md b/release_docs/CHANGELOG.md index 192a0e4d0ad..bd2c7664d91 100644 --- a/release_docs/CHANGELOG.md +++ b/release_docs/CHANGELOG.md @@ -25,7 +25,7 @@ For releases prior to version 2.0.0, please see the release.txt file and for mor ## Performance Enhancements: -- 30% faster opening and 25% faster closing of virtual datasets. +- [30% faster opening](https://github.com/HDFGroup/hdf5/blob/develop/release_docs/CHANGELOG.md#layoutcopydelay) and 25% faster closing of virtual datasets. - Reduced memory overhead via shared name strings and optimized spatial search algorithms for virtual datasets. ## Significant Advancements: @@ -439,6 +439,12 @@ Simple example programs showing how to use complex number datatypes have been ad Similar to the above. Setting the connector on a non-FAPL had no effect on library behavior, and the connector ID and information could not be read back from that plist later. +### Optimized Virtual Dataset opens by delaying layout copy + + On dataset open, the dataset performed an internal copy of the layout in order to populate its internal DCPL. For virtual datasets, this added a significant amount of overhead to the open operation. + + This layout copy is now delayed until either a user requests the DCPL, or until the start of an operation that needs to read the layout from the DCPL. + ## Parallel Library ## Fortran Library From ed74926243f6b4ee4f314933b885783add83fe4d Mon Sep 17 00:00:00 2001 From: Matthew Larson Date: Thu, 25 Sep 2025 15:18:15 -0500 Subject: [PATCH 2/2] Add link to shared strings CHANGELOG --- release_docs/CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/release_docs/CHANGELOG.md b/release_docs/CHANGELOG.md index bd2c7664d91..897ab44555f 100644 --- a/release_docs/CHANGELOG.md +++ b/release_docs/CHANGELOG.md @@ -25,8 +25,8 @@ For releases prior to version 2.0.0, please see the release.txt file and for mor ## Performance Enhancements: -- [30% faster opening](https://github.com/HDFGroup/hdf5/blob/develop/release_docs/CHANGELOG.md#layoutcopydelay) and 25% faster closing of virtual datasets. -- Reduced memory overhead via shared name strings and optimized spatial search algorithms for virtual datasets. +- [30% faster opening](https://github.com/HDFGroup/hdf5/blob/develop/release_docs/CHANGELOG.md#layoutcopydelay) and [25% faster closing](https://github.com/HDFGroup/hdf5/blob/develop/release_docs/CHANGELOG.md#fileformat) of virtual datasets. +- [Reduced memory overhead](https://github.com/HDFGroup/hdf5/blob/develop/release_docs/CHANGELOG.md#fileformat) via shared name strings and optimized spatial search algorithms for virtual datasets. ## Significant Advancements: @@ -212,6 +212,8 @@ Calling `H5Pset_fapl_ros3()` now has the side effect of setting the page buffer The Virtual Dataset Global Heap Block format has been updated to version 1 to support shared string storage for source filenames and dataset names, reducing file size when multiple mappings reference the same sources. This new format is only used when the HDF5 library version bounds lower bound is set to 2.0 or later. +Use of the shared strings option for Virtual Datasets reduces memory overhead and optimizes dataset close operations. + ### The `H5Dread_chunk()` signature has changed A new parameter, `nalloc`, has been added to `H5Dread_chunk()`. This parameter contains a pointer to a variable that holds the size of the buffer buf. If *nalloc is not large enough to hold the entire chunk being read, no data is read. On exit, the value of this variable is set to the buffer size needed to read the chunk.