You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Optimize VDS operations using R-tree spatial index, adding new API functions and tests for improved performance.
Behavior:
Introduces R-tree spatial index for optimizing VDS operations in H5Dvirtual.c.
Adds H5Pset_dset_use_spatial_tree() and H5Pget_dset_use_spatial_tree() to control R-tree usage.
Default behavior uses R-tree for VDS with more than 1000 mappings.
Implementation:
Adds H5RT.c, H5RTprivate.h, and H5RTpkg.h for R-tree implementation.
Updates H5Pdapl.c and H5Pdcpl.c to include R-tree properties.
Modifies H5Dvirtual.c to integrate R-tree in VDS I/O operations.
Testing:
Adds rtree.c for testing R-tree creation, search, and copy operations.
Tests R-tree integration with VDS in test/dsets.c.
Verifies R-tree behavior with different dataset access property list settings.
Copy file name to clipboardExpand all lines: release_docs/CHANGELOG.md
+21Lines changed: 21 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,7 @@ For releases prior to version 2.0.0, please see the release.txt file and for mor
25
25
26
26
## Performance Enhancements:
27
27
28
+
- Up to [2500% faster](https://github.com/HDFGroup/hdf5/blob/develop/release_docs/CHANGELOG.md#rtree) Virtual Dataset read/write operations
28
29
-[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.
29
30
-[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.
30
31
@@ -461,6 +462,26 @@ Simple example programs showing how to use complex number datatypes have been ad
461
462
462
463
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.
463
464
465
+
### Virtual datasets now use a spatial tree to optimize searches<aname="rtree"></a>
466
+
467
+
Virtual dataset operations with many (>1,000) mappings were much slower than
468
+
corresponding operations on normal datasets. This was due to the need
469
+
to iterate through every source dataset's dataspace and check for an intersection
470
+
with the user-selected region for a read/write in the virtual dataset.
471
+
472
+
Virtual datasets with many mappings now use an r-tree (defined in H5RT.c) to
473
+
perform a spatial search. This allows the dataspaces that intersect the
474
+
user-selection to be computed with, in most cases, much fewer intersection checks,
475
+
improving the speed of VDS read/write operations.
476
+
477
+
Virtual datasets will use the r-tree by default, since the majority of use cases,
478
+
should see improvements from use of the tree. However, because some workflows may
479
+
find that the overhead of the tree outweighs the time saved on searches, there is
480
+
a new Dataset Access Property List (DAPL) property to control use of the spatial tree.
481
+
482
+
This property can be set or queried with the new API functions
0 commit comments