Network

 
AuthorCommitMessageCommit Date
David YoungDavid Young
f2305cfc670MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
5cb598fb115Use native byte order unless big-endian is specified with `-b` option.
David YoungDavid Young
49bb232d6f4MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
6274081bdd3Add a VDS mode to the bigset test.
David YoungDavid Young
92cf20e8658MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
c6250072dafGather a couple of assertions.
David YoungDavid Young
26d5a950e80Create one dataset creation property list and one file dataspace and share them across all datasets/iterations. Extract common code into state_destroy().
David YoungDavid Young
ef699d88809MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
bf4fca57f77When extending the dataset in one dimension, add columns instead of rows so that it's possible to produce a virtual dataset (VDS) variant of the test.
vchoivchoi
9f48f4e266f(1) Add public routines H5Fvfd_swmr_end_tick, H5Fvfd_swmr_disable_end_of_tick, H5Fvfd_swmr_enable_end_of_tick(). (2) Tests for the above APIs.
vchoivchoi
7d50012a402(1) Add public routines H5Fvfd_swmr_end_tick, H5Fvfd_swmr_disable_end_of_tick, H5Fvfd_swmr_enable_end_of_tick(). (2) Tests for the above APIs.
David YoungDavid Young
5449b2af49aMMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
d98d6746e0eAdd/check a group attribute every so many steps. delete some dead code, and set a non-zero default for the number of steps.
David YoungDavid Young
99245b55f3aMMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
efd1c0a3053Extract common subexpressions into `oent` and `nent` for brevity. Assert index entries are in sorted order earlier in the loop over old and new indices. When looping over the remaining new index entries, just do `entries_added++` to match the other loops. In the final log entry in H5F_vfd_swmr_reader_end_of_tick(), mention whether the call will exit with success or failure.
David YoungDavid Young
2b1df169258Make H5Drefresh() copy non-persistent properties---e.g., dataset access property lists---from the closed dataset to the reopened dataset. Now my chunk-cache settings appear to survive H5Drefresh() calls.
David YoungDavid Young
bd87af04084Create a dataset access property list (dapl) that disables the chunk cache and apply it individually to each dataset instead of setting the chunk-cache parameters on the file. Alas, it didn't make any difference, but I'll keep the change.
David YoungDavid Young
64cedaa228fMMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
afd49812d5eOn each SWMR VFD open for reading, keep a histogram for the number of ticks elapsed during API calls. Write the histogram to the swmr_stats log outlet when the SWMR VFD closes.
David YoungDavid Young
a5afe927e18Rename H5F__vfd_swmr_writer__create_index to H5F__vfd_swmr_create_index. H5F_vfd_swmr_reader_end_of_tick: delete superfluous assertions and extract a com mon subexpression into a H5FD_t * variable. Carry on with HGOTO_ERROR() cleanup. Delete superfluous parentheses to reduce visual clutter. Delete superfluous casts. Delete out-of-date comment: the index size is not fixed any longer.
David YoungDavid Young
8810656911fDelete superfluous casts. Remove superfluous backslashes and statement-ify, changing HGOTO_ERROR(..., \ ) to HGOTO_ERROR(..., ); Remove blank lines between if-clause and HGOTO_ERROR. Add some curly braces to if-statements where that clarifies things. NFCI.
David YoungDavid Young
cb18697b3b4Close all of the datasets we opened.
David YoungDavid Young
3fa6b2e09f8MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
625ef85fe56Avoid leaving a v1 B-tree used as a chunk index in a bad state that makes assertions fail. Add an optional `close` method to the `H5D_chunk_ops_t`, and use that to release "holds" on metadata cache (MDC) entries. For extensible arrays and v2 B-trees, use the existing `dest`(roy) method to implement `close`. For v1 B-trees and other chunk indices, don't provide `close`: we cannot safely close the v1 B-tree index, and the other indices don't have a meaningful presence in the MDC. Revert my ...
David YoungDavid Young
749a718c235MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
ff43cd3631eActivate tests `few_big` and `many_small`, now that they pass.
David YoungDavid Young
8505c1262c5Always restart H5C_evict_or_refresh_all_entries_in_page()'s scan of the entries in a hash bucket after evicting tagged entries. Evicting tagged entries can can affect both entries before and after the current entry in the bucket's linked list, so we cannot be sure that either `entry_ptr` or `follow_ptr` is valid. This stops the assertion (entry_ptr->page != page) || (entry_ptr->refreshed_in_tick == tick) from failing in the test `testvfdswmr.sh many_small`.
David YoungDavid Young
b5d304acf60Extract a subroutine that closes chunk indices, H5D__chunk_index_close(), and call it in H5D__chunk_read() after reading a chunked dataset. In this way, indices based on extensible arrays and v2 B-trees do not leave pinned/tagged entries in the metadata cache that we cannot evict/refresh when we load changes from the shadow file. Make some changes to the v1 B-tree code that set the pointer to the closed B-tree to NULL and, further, tolerate a NULL pointer where previously that was impossible.
David YoungDavid Young
ff8f7e6da4aLimit every chunk cache to 1 slot and 1kB so that the test doesn't run my dinky development server out of memory.
David YoungDavid Young
56bc1ea5355Make the test more challenging: on every other step, read a chunk-sized region offset by 1 unit from a chunk boundary.
David YoungDavid Young
57fde42f7dfWrap a line. NFCI.
David YoungDavid Young
5cde36e2cdcDelete code that has no effect: don't empty a mask set only to fill it in the next expression.
David YoungDavid Young
f8a26a86c68MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
4351ad6c4e8Only remove shadow-index entries in H5PB__evict_entry() if we're a VFD SWMR writer, so that the reader does not lose track of the real shadow-index content.
David YoungDavid Young
05dafca8e02MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
052257ec62dDelete unused variables and struct members.
David YoungDavid Young
8e8cece3035Be concise and more obviously correct, and knock many line widths below than 80 columns: use the malloc idiom, ``` type *p; p = malloc(sizeof(*p)); ``` instead of ``` type *p; p = (type *)malloc(sizeof(type)); ``` Make a similar change to some `memset` calls. NFCI.
David YoungDavid Young
1f488a60e66If we're processing the EOT queue when we *enter* a function, use HGOTO_ERROR() instead of HDONE_ERROR() so that we jump to the `done` label right away. This ought to fix the problem Vailin was seeing, where the library left H5F_vfd_swmr_reader_end_of_tick() prematurely for seemingly no reason.
David YoungDavid Young
5a3f7830db0Improve debug output: when the lower file's shadow file image moves, tell old and new shadow file offset.
David YoungDavid Young
01cf824faa0Add a label, `addr`, to an HDF5 file address in debug output.
David YoungDavid Young
44c114017e8MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
6e23b5d2636In H5FD_vfd_swmr_read(), log on outlet `swmr_read` whether the read is satisfied from the lower file or the shadow file.
David YoungDavid Young
7bfba8aa398MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
David YoungDavid Young
7ecf5d54665Perform a test where a writer creates 10,000 groups while a reader waits for each to appear. Add but do not yet perform tests on many small extensible datasets and a few big extensible datasets. Vailin is working on a bug that causes both tests to fail virtually always.
David YoungDavid Young
5c534e41b66If there were hard errors, report any soft errors, too.
David YoungDavid Young
1410aa21a07Straggler from previous: don't count errors *and* exit, just count.
David YoungDavid Young
47890e826f7A zoo error is not a soft error. Count it as a hard error instead of a soft error.
David YoungDavid Young
91d388a41c9Don't count up errors *and* exit right away when there is an error. Just count.
David YoungDavid Young
cb73324ce58Disable the error-stack printing around the H5Gopen() call that we know will sometimes fail.
David YoungDavid Young
a9ad1568108MMerge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine