diff options
author | David Young <dyoung@hdfgroup.org> | 2020-04-15 14:44:14 (GMT) |
---|---|---|
committer | David Young <dyoung@hdfgroup.org> | 2020-04-15 14:44:14 (GMT) |
commit | f51f69faad3f43132e568c905147f6be8e77b41a (patch) | |
tree | 1084e7aba52ac2481d3528e0be1c2c0653623bf0 | |
parent | 4b40738946b0fac7cbf493b7f50bc7f7f1a15ed4 (diff) | |
download | hdf5-f51f69faad3f43132e568c905147f6be8e77b41a.zip hdf5-f51f69faad3f43132e568c905147f6be8e77b41a.tar.gz hdf5-f51f69faad3f43132e568c905147f6be8e77b41a.tar.bz2 |
Re-wrap paragraphs at < 80 columns.
-rw-r--r-- | doc/VFD_SWMR_Punch_List.md | 116 |
1 files changed, 61 insertions, 55 deletions
diff --git a/doc/VFD_SWMR_Punch_List.md b/doc/VFD_SWMR_Punch_List.md index 9a8a1d2..aeb29b9 100644 --- a/doc/VFD_SWMR_Punch_List.md +++ b/doc/VFD_SWMR_Punch_List.md @@ -20,29 +20,30 @@ guide to the syntax. 3. Design work for journaling variation. -4. **Vailin, complete** Add support for opening multiple files in either VFD SWMR writer or - VFD SWMR writer mode. See addition of the EOT queue in section 3.2.2 - of the RFC, and related changes in sections 3.3 and 3.3.2. +4. **Vailin, complete** Add support for opening multiple files in + either VFD SWMR writer or VFD SWMR writer mode. See addition of + the EOT queue in section 3.2.2 of the RFC, and related changes in + sections 3.3 and 3.3.2. -5. **Vailin, complete** Add the pb\_expansion\_threshold field to the - H5F\_vfd\_swmr\_config\_t structure, and update - H5Pset\_vfd\_swmr\_config() and - H5Pget\_vfd\_swmr\_config() accordingly. +5. **Vailin, complete** Add the pb\_expansion\_threshold field + to the H5F\_vfd\_swmr\_config\_t structure, and update + H5Pset\_vfd\_swmr\_config() and H5Pget\_vfd\_swmr\_config() + accordingly. -6. **Vailin, in progress** Implement end tick now API call. See section 3.1.2 of the RFC for - specifications. +6. **Vailin, in progress** Implement end tick now API call. See section + 3.1.2 of the RFC for specifications. -7. **Vailin, in progress** Implement enable / disable EOT call. See section 3.1.3 of the RFC - for specifications. +7. **Vailin, in progress** Implement enable / disable EOT call. See + section 3.1.3 of the RFC for specifications. 8. Implement option to flush raw data as part of EOT -- write performance test to characterize the performance hit. - Currently, the raw data is always flushed at EOT. We need a - knob that turns on and off the raw-data flush. + Currently, the raw data is always flushed at EOT. We need a knob + that turns on and off the raw-data flush. -9. **Vailin, complete** Move VFD SWMR specific H5F code to its own file -- say - H5Fvfd\_swmr.c. +9. **Vailin, complete** Move VFD SWMR specific H5F code to its own file + -- say H5Fvfd\_swmr.c. 10. Update the new page buffer to support the pb\_expansion\_threshold, and trigger an early end of tick if the threshold is exceeded. @@ -56,18 +57,20 @@ guide to the syntax. 13. Tidy short cuts in the initial implementation. These include: - - **Vailin complete** Odd behavior in the superblock refresh routine (see comments in - code). Figure out what is going on, and then either bypass the - issue or fix it as seems appropriate. + - **Vailin complete** Odd behavior in the superblock refresh + routine (see comments in code). Figure out what is going on, and + then either bypass the issue or fix it as seems appropriate. - - **Vailin complete** Comment H5F\_vfd\_swmr\_config\_t in H5Fpublic.h properly. + - **Vailin complete** Comment H5F\_vfd\_swmr\_config\_t in + H5Fpublic.h properly. - Cleanup EOA hack in H5FD\_read(). - - **David, complete** Address file open failures in SWMR tests. These - appear to be cases in which the writer finishes before the reader - opens -- causing the reader to fail as the metadata file no longer - exists. If so, handle this more gracefully. + - **David, complete** Address file open failures in SWMR + tests. These appear to be cases in which the writer finishes + before the reader opens -- causing the reader to fail as + the metadata file no longer exists. If so, handle this more + gracefully. 14. Add support for specifying the VFD that sits under the VFD SWMR reader VFD. Probably do this as part of the pluggable VFD design @@ -78,9 +81,9 @@ guide to the syntax. 16. Implement the logging facility (section 3.14 RFC) -17. **David, probably fixed by various changes since September 2019** Test code -to expose existing page buffer bugs and fix same. Note that they seem to appear -primarily on Jelly. +17. **David, probably fixed by various changes since September 2019** + Test code to expose existing page buffer bugs and fix same. Note + that they seem to appear primarily on Jelly. - DLL pre remove sanity check assertion failure @@ -94,12 +97,12 @@ primarily on Jelly. 19. **David, complete** Fix memory leak in sparse-reader test. - David found that the shadow index was leaked by VFD SWMR readers - and plugged the leak. Now the sparse reader tests do not use up - all of the memory on `jelly`. + David found that the shadow index was leaked by VFD SWMR readers and + plugged the leak. Now the sparse reader tests do not use up all of + the memory on `jelly`. -20. **David, complete** Test John's patch that repairs the superblock flags - mismatch that crashes the reader. +20. **David, complete** Test John's patch that repairs the superblock + flags mismatch that crashes the reader. David found that the patch fixed the demo crashes. @@ -109,8 +112,8 @@ primarily on Jelly. This race condition may only affect raw-data access. - It may be necessary to poll the superblock for the current EOA. - The reader's refresh routine for the superblock should propagate the new + It may be necessary to poll the superblock for the current EOA. The + reader's refresh routine for the superblock should propagate the new EOA to the VFDs. 22. Understand use of H5F\_t on branch feature/vfd\_swmr instead of @@ -131,9 +134,9 @@ primarily on Jelly. 26. **David, complete** Fix the expand/shrink test. The test appeared to fail because the dataset extent was enlarged - before the data was written, so arbitrary data was present. - If a tick snuck in between the `H5Dset_extent` and - the `H5Dwrite`, then the reader read the arbitrary data. + before the data was written, so arbitrary data was present. If a + tick snuck in between the `H5Dset_extent` and the `H5Dwrite`, then + the reader read the arbitrary data. In the `gaussian` test, I have a heuristic that avoids reading arbitrary data. Replicating that in the expand/shrink test has @@ -141,35 +144,38 @@ primarily on Jelly. Ultimately, we should suspend ticks over the H5Dset_extent/H5Dwrite. -27. **Vailin, complete** Change the field name "vfd\_swmr\_writer" to "writer" in - "struct H5F_vfd_swmr_config_t" and all references to it. See page 11 in the RFC. +27. **Vailin, complete** Change the field name "vfd\_swmr\_writer" to + "writer" in "struct H5F_vfd_swmr_config_t" and all references to it. + See page 11 in the RFC. -28. **Vailin, complete** Fix bug as stated on page 9 in the RFC section 3.1.1: - Given that the VFD SWMR configuration FAPL property is set, the writer field must - be consistent with the flags passed in the H5Fopen() (either H5F_ACC_RDWR for the - VFD SWMR writer, or H5F_ACC_RDONLY for the VFD SWMR readers). +28. **Vailin, complete** Fix bug as stated on page 9 in the RFC section + 3.1.1: Given that the VFD SWMR configuration FAPL property is + set, the writer field must be consistent with the flags passed in + the H5Fopen() (either H5F_ACC_RDWR for the VFD SWMR writer, or + H5F_ACC_RDONLY for the VFD SWMR readers). -29. **Vailin, complete** Fix the FSM bug when setting the FSM threshold to a non-default value. - The problem was manifested when setting the threshold value in vfd_swmr_generator.c via - H5Pset_file_space_strategy(fcpl, H5F_FSPACE_STRATEGY_PAGE, FALSE, 1024 * 1024 * 1024) and - then run the vfd_swmr_addrem_writer.c. +29. **Vailin, complete** Fix the FSM bug when setting the FSM + threshold to a non-default value. The problem was manifested + when setting the threshold value in vfd_swmr_generator.c via + H5Pset_file_space_strategy(fcpl, H5F_FSPACE_STRATEGY_PAGE, FALSE, + 1024 * 1024 * 1024) and then run the vfd_swmr_addrem_writer.c. 30. **David, merged, needs unit test** Add a delay to the FSM so that freed regions are not reused before max\_lag ticks are up. -31. Create a large dataset with a small chunk size to verify that - page management in the extensible array is handled properly by - VFD SWMR. +31. Create a large dataset with a small chunk size to verify that page + management in the extensible array is handled properly by VFD SWMR. -32. Make a fixed-size dataset with a small chunk size to verify ... see #31. +32. Make a fixed-size dataset with a small chunk size to verify ... see + #31. 33. Make automated tests out of the `credel` and `gaussians` tests. -34. Conserve space in the shadow file. - In vfd_swmr_enlarge_shadow_index(), - we postpone reclamation of the old shadow index for max\_lag ticks, but - it's not necessary to wait that long. David traded some space - efficiency for simplicity, for now. See the note in the source code. +34. Conserve space in the shadow file. In + vfd_swmr_enlarge_shadow_index(), we postpone reclamation of the old + shadow index for max\_lag ticks, but it's not necessary to wait that + long. David traded some space efficiency for simplicity, for now. + See the note in the source code. 35. In the documentation, we should note that if a writer deletes an object that the reader has open (possesses an hid_t), and max_lag |