Network

 
AuthorCommitMessageCommit Date
David YoungDavid Young
eaeede0120aDelete the hdf5_page_offset member of shadow_defree_t, it is initialized but never read.
David YoungDavid Young
4ffc6839e1bFix a typo in a diagnostic printf and, while I'm here, use the right format strings.
David YoungDavid Young
bc27f0d1ce3Use proper format string.
David YoungDavid Young
9a8ba2a7d36Make H5FD_vfd_swmr_dump_status() take an unsigned page number to be consistent with other code.
David YoungDavid Young
456f5c6ee61Quiet some warnings about jumping over variable initialization, an improper format string, etc. NFCI.
David YoungDavid Young
70515b290f8Rename the deferred-free queues. There are two of them, and the names I used for them did not help me keep track of what they were for. For brevity, I will call a deferred free record a "defree" in the code. The deferred_free_queue_t becomes a lower_defree_queue_t, and each record on the queue becomes a lower_defree_t. A lower_defree_t tracks one deferred free on the lower VFD---that is, the one under the SWMR VFD. The old_image_queue_t becomes a shadow_defree_queue_t, and a record there...
David YoungDavid Young
3c4a34951e6Move the bsdqueue.h #inclusion up with the other #inclusions.
Mike FolkMike Folk
fbcbf769077Update VFD_SWMR_Punch_List.md
Mike FolkMike Folk
ae61a8e8261Update VFD_SWMR_Punch_List.md
David YoungDavid Young
3c659197766NFCI: exit(EXIT_FAILURE) instead of exit(1) for portability. Delete a comment on a closing curly brace.
David YoungDavid Young
036dd539d3aIt's not necessary to assert(p != NULL) if you're dereferencing p in the next assertion.
David YoungDavid Young
29ee63787b8Numerous changes supporting a floating shadow index: Add to the H5F_shared_t (!) a new member that tells the index in the shadow file where the index should be written. Allocate shadow filespace for the header and the index separately so that the index can float. Update tests to match the expected original location of the index. Introduce vfd_swmr_enlarge_shadow_index(), a routine that allocates space in the shadow file for a new index that has (up to) twice as many entries as the old ind...
David YoungDavid Young
64f1ef1fda4Make the first argument to H5PB_vfd_swmr__update_index() and H5F_t instead of an H5F_shared_t because the new routine that will relocate the index (which will be in a future commit) has to pass an H5F_t to the filespace allocator.
David YoungDavid Young
005bd89ad5fUse FAIL_STACK_ERROR instead of TEST_ERROR after library calls, so that the error stack will be reported. Use calloc instead of malloc+memset.
David YoungDavid Young
57fe4a52a26Consolidate shadow-file allocation code in H5MV.c.
David YoungDavid Young
590c51b68c6Remove some dead code and out-of-date comments.
David YoungDavid Young
2e15f48d789Repair indentation and delete some superfluous comments. NFCI.
David YoungDavid Young
b7f5776c531Fix typo. NFCI.
David YoungDavid Young
cb66576c7aeUse fewer gratuitous casts. Use struct assignment instead of member-by-member assignment to copy `struct timespec`. NFCI.
David YoungDavid Young
b34e6d2f458Add some missing spaces.
David YoungDavid Young
59e7b10a7e3Fix spelling. NFCI.
David YoungDavid Young
0fbd8654f7dPrepare the VFD SWMR reader for a "floating" shadow index by overhauling the way that the shadow header and shadow index are loaded. In H5FD__vfd_swmr_load_hdr_and_idx(), adopt a new protocol for reading the shadow file: 0 If the maximum number of retries have been attempted, then exit with an error. 1 Try to read the shadow file *header*. If successful, continue to 2. If there is a hard failure, then return an error. If there is a failure that may be transient, then sleep and ret...
David YoungDavid Young
33ea1d2b066Add my newest commentary. Finally reached page 14!
David YoungDavid Young
2754bb2b764Change md_pages_reserved and pb_expansion_threshold parameters to uint32_t from int32_t.
David YoungDavid Young
fe7965d38f8Don't use the bash-ism [[ ]]. Use the [ ], which is standard and perfectly adequate in this case.
David YoungDavid Young
16ca8f2c954Prepare a bit to let the shadow index "float": drastically simplify H5FD__vfd_swmr_index_deserialize(): reuse h5_retry_init()/h5_retry_next() for retry loops. Don't wait for the fstat(2) to read the correct size, because the read(2) will return short if the file isn't long enough. (This change should save at least one system call, always.) Leave a bunch of comments about the changes that I will have to make so that the shadow index will float. NFCI: do not cast H5MM_malloc() return values...
David YoungDavid Young
5fb463bb2e7Now that we're buffering the removed pages to process at once, it's not necessary to iterate over pass numbers any more, so just use two loops. While I'm in here, change a comment or formatting here and there.
David YoungDavid Young
7a0a2a0b5dcH5F_vfd_swmr_reader_end_of_tick(), compares both new and old shadow indices and calls H5PB_remove_entry() on each entry that was in the old index but is not in the new. Ever since H5PB_remove_entry() started removing shadow index entries, it has been possible for H5F_vfd_swmr_reader_end_of_tick() to walk past the end of the new shadow index or even to skip entries in the new index. Sometimes an assertion failed when that happened. I have restructured the code in H5F_vfd_swmr_reader_end_of_...
David YoungDavid Young
cdbdc33c5a5Simplify nested logic in H5FD_vfd_swmr_get_tick_and_idx(). assert() our expectation that either a NULL index was passed, or a pointer to the index length was passed in, too.
David YoungDavid Young
671f7552ab5Correct some irregular indentation, delete an unused line, split an `if ((p = allocate(...)) == NULL) { }` into two statements, `p = allocate(...); if (p == NULL) { }`, put a semicolon at the end of an HGOTO_ERROR(), remove comments /* end if */, /* end for */ after closing curly braces.
David YoungDavid Young
f19b6c4d485Make H5FD__vfd_swmr_load_hdr_and_idx() simpler and faster: copy a pointer to the metadata index instead of copying the index itself. Use struct assignment instead of copying individual struct members. Lower a staircase.
David YoungDavid Young
c4e19fa84bfAfter quick-sorting the index, go ahead and assert that there are not duplicate entries for the same HDF5 page offset. There's an O(n) cost to that, but it should be no more than the O(n log n) cost of the quicksort.
David YoungDavid Young
d288a7b93c9In H5F__vfd_swmr_writer__create_index(), use calloc(3) instead of malloc(3) and a for-loop that zeroes the index.
David YoungDavid Young
8d2217d2955In H5PB_remove_entry(), do not call vfd_swmr_mdf_idx_entry_remove(), because the H5PB__evict_entry() call should have already done that. Instead, just assert() that the index entry is not present.
David YoungDavid Young
790eccbc20bIn vfd_swmr_mdf_idx_entry_remove(), give some local variables less wordy names. While I am here, do not copy the last element of the index over the element that's being deleted, because in the very next step I'm shifting all elements over by one.
David YoungDavid Young
f4d8894158eStraggler from previous: provide uint64_decode().
David YoungDavid Young
3fd9dc7b83fClean up the code a bit: remove some unnecessary casts and such. NFCI.
David YoungDavid Young
3a911e2b39bChange the blah_blah_blah_md_header `index_length` member from `uint64_t` to `size_t` because it describes the size of an in-core structure as well as an on-disk one, and `size_t` is wide enough to store the size of any in-core structure, while `uint64_t` may be much too wide. Check that `index_length` is no more than SIZE_MAX after we read it.
David YoungDavid Young
1df69ed3a09Delete unused constants.
David YoungDavid Young
5ae8d135a54Be brief, replace `(H5FS_section_info_t *)node` with `&node->sect_info`.
David YoungDavid Young
f8c5797bd62Provide a convenience constant, H5_RETRY_ONE_SECOND.
David YoungDavid Young
62e1340bdd9Disable C++ compatibility warnings to follow `develop` on the main fork.
David YoungDavid Young
c09a9e90e1eUpdate punchlist a bit with John: add some items, update entries that are now complete.
David YoungDavid Young
0b11cfbf50bAdd a new version of the RFC with some commentary by me.
David YoungDavid Young
0ec3340692aMakes some updates: in-progress, needs unit testing. Insert some whitespace where it makes things more readable.
David YoungDavid Young
12ea13f745fMention the current situation concerning raw-data flushing.
David YoungDavid Young
68b012f0175Mention that I fixed the VFD SWMR tests.
David YoungDavid Young
0b5dfad751cDon't cast a malloc(3), this is C. Put curly braces around a multiline `if` statement. Delete an unnecessary backslash line continuation. NFCI.
David YoungDavid Young
e024b2737c9Assert that a shadow image is page-aligned since we assume that it is when we compute its base address and free it.
David YoungDavid Young
37fb4bda711Delete unnecessary whitespace including invisible whitespace at the end of lines. Wrap a couple of lines. NFCI.