Should a user defined VFD capability be introduced? #2638
Replies: 10 comments 4 replies
-
@DennisHeimbigner you suggested that I follow H5FDhttp.c as an example, but I think that that part is already in the |
Beta Was this translation helpful? Give feedback.
-
Sorry I was not clear. You will have to modify and rebuild the netcdf-c library code. |
Beta Was this translation helpful? Give feedback.
-
I've added the user defined VFD at the hdf5 level - the question is how to access it from the netcdf level or above? |
Beta Was this translation helpful? Give feedback.
-
Ok, these issues should be addressed in the discussion you created. |
Beta Was this translation helpful? Give feedback.
-
[Moved this from #2637] There is the void *parameters argument down at the NC_create and below level, but I don't see any existing netCDF create or open calls that would allow me to set values in parameters and then interpret those down at the appropriate level. For my experimentation, I can just work with environment variables and hard-coding, but eventually it would be nice to have a general mechanism for accessing the various HDF5 VFD and VOL capabilities without writing new UDF* options for each one. The .rc file mechanism mentioned by @DennisHeimbigner in #2637 might work, but that puts some responsibility on the user and there are issues with running multiple outputs each with a different option (e.g., I want a restart/checkpoint file using subfiling VFD and a results file not using subfiling all in the same execution). Would it make sense to add another nc_create_??? function which took the void *parameters option and passed it down through the call stack to the bottom-level function(s) that actually deal with creating (and opening) the HDF5 file? |
Beta Was this translation helpful? Give feedback.
-
An example of usage of the subfiling VFD:
Would want to be able to specify that user wanted subfiling VFD, and the stripe size of 1MiByte and the thread_pool_size of 2 in addition to some other user-settable parameters [user may be the actual user, or the application calling the netCDF library] Maybe it is best to have a new UDF* that can be used for all/most VFD and VOL options instead of trying to push everything down through a |
Beta Was this translation helpful? Give feedback.
-
I am considering the following solution: comments welcome.Allow nc_open/create to take path of the form file://<absolute|relative file path>#hdf5.vfd=XXXX |
Beta Was this translation helpful? Give feedback.
-
I don't like having parameters passed as part of the string. I think that's overly complex. Adding a new nc_create/nc_open variant would be preferable, IMO. |
Beta Was this translation helpful? Give feedback.
-
The disadvantage of extending the API is that it could impact all sorts of existing client programs. |
Beta Was this translation helpful? Give feedback.
-
So the main concerns about this I have are (as usual, I should make a template) the following:
Dennis already mentioned the potential impact on other existing software, so I won't reiterate those here. I agree that this could be useful, and am not trying to end the conversation, I just wanted to share my thoughts while they were fresh in my mind. I don't see any technical reason why we shouldn't permit user-defined VFD's, but since they're a relatively new feature in HDF5, there's no urgency to incorporate them into |
Beta Was this translation helpful? Give feedback.
-
Following up on this discussion, should we allow for
a user defined VFD?
Beta Was this translation helpful? Give feedback.
All reactions