compatibility.md

June 13, 2024 ยท View on GitHub

The Log VOL connector API compatibility

Following tables contains list of the Log VOL connector's compatibility with HDF5 APIs. APIs not listed below is assumed to be unsupported.

See doc/vol_test_fails.md for a comprehensive test result of log-layout based VOL on all HDF5 features.

Level of support

  • Full
    • The API is supported as long as the underlying VOL supports it.
    • Applications can expect exactly the same behavior as using the underlying VOL.
    • The request is usually passed directly to the underlying VOL.
  • High
    • The primary purpose of the API is supported by the Log VOL connector.
    • There may be some limitations that should not affect most applications.
    • The behavior may differ slightly from the underlying VOL.
  • Partial
    • The API only work under certain condition or a limited set of parameters.
    • The API will return an error if the input argument is not supported.
  • Repurposed
    • The API serves a different purpose than the origin HDF5 API.
  • None
    • The API is not supported or never tested.
    • The API may return an error or incorrect result.

Attribute APIs (H5A*)

  • All attribute APIs are Highy supported (Full).

Dataset APIs (H5D*)

APILevel of SupportNotes
H5DcreateHighA dataset can only have one opened instance at a time. Operating multiple dataset handle to the same dataset will result in undefined behavier.
H5Dcreate_anonNone
H5DopenHighA dataset can only have one opened instance at a time. Operating multiple dataset handle to the same dataset will result in undefined behavier.
H5DcloseHigh
H5DfillNone
H5DreadPartialThe API stages read request in the Log VOL connector without actually performing read.
H5DwritePartialThe API stages write request in the Log VOL connector without actually writing to the file. Application must call H5Fflush to ensure the data is written to the file. The application should not overwrite unflushed write requests (writing to the same place twice), or the result is undefined.
H5DflushRepurposedSame as calling H5Fflush on the file containing the dataset
H5DrefreshNone
H5DgatherNone
H5DscatterNone
H5DiterateNone
H5Dset_extentHigh
H5Dvlen_get_buf_sizeNone
H5Dvlen_reclaimNone
H5Dget_storage_sizeNone
H5Dget_spaceHigh
H5Dget_space_statusNone
H5Dget_typeFull
H5Dget_create_plistFull
H5Dget_access_plistFull
H5Dget_offsetNone

Error APIs (H5E*)

  • All error APIs are not supported (None).

File APIs (H5F*)

APILevel of SupportNotes
H5FcreateHighA file can only have one opened instance at a time. Operating multiple file handle to the same file will result in undefined behavier.
H5FopenHighA file can only have one opened instance at a time. Operating multiple file handle to the same file will result in undefined behavier.
H5Fget_file_imageNone
H5FreopenNone
H5FcloseHighAll objects in the file must be closed before closing the file.
H5FflushRepurposedThe API is repurposed for flushing staged I/O requests.
H5FmountNone
H5FunmountNone
H5Fget_vfd_handleNone
H5Fget_filesizeFull
H5Fget_create_plistFull
H5Fget_access_plistHighthe Log VOL connector may introduce additional file access property in the file it creates
H5Fget_infoFull
H5Fget_info1 *Full
H5Fget_info2Full
H5Fget_intentFull
H5Fget_nameFull
H5Fget_obj_countNone
H5Fget_obj_idsNone
H5Fget_free_sectionsNone
H5Fget_freespaceNone
H5Fclear_elink_file_cacheNone
H5Fset_mdc_configNone
H5Fget_mdc_configFull
H5Fget_mdc_hit_rateFull
H5Freset_mdc_hit_rate_statsNone
H5Fget_mdc_image_infoFull
H5Fget_mdc_sizeFull
H5Fget_metadata_read_retry_infoFull
H5Fstart_mdc_loggingNone
H5Fstop_mdc_loggingNone
H5Fget_mdc_logging_statusNone
H5Fstart_swmr_writeNone
H5Fset_mpi_atomicityNone
H5Fget_mpi_atomicityFull
H5Fget_page_buffering_statsFull
H5Freset_page_buffering_statsNone

Group APIs (H5G*)

  • All group APIs are Highy supported (Full).
APILevel of SupportNotes
H5Lcreate_hardNone
H5Lcreate_softNone
H5Lcreate_externalNone
H5LexistsHigh
H5LmoveNone
H5LcopyNone
H5LdeleteNone
H5Lget_infoFull
H5Lget_valFull
H5Lunpack_elink_valNone
H5Lcreate_udNone
H5LregisterNone
H5LunregisterNone
H5Lis_registeredNone
H5LiterateHigh
H5Literate_by_nameHigh
H5LvisitHigh
H5Lvisit_by_nameHigh
H5Lget_info_by_idxNone
H5Lget_name_by_idxNone
H5Lget_val_by_idxNone
H5Ldelete_by_idxNone

Object APIs (H5O*)

APILevel of SupportNotes
H5OopenHighIf the object is a file or a dataset, the object specific limitations apply.
H5Oopen_by_idxNone
H5Oopen_by_addrNone
H5OlinkNone
H5OcloseHighIf the object is a file, H5Fclose limitations apply.
H5OcopyNone
H5Oexists_by_nameFull
H5OvisitHigh
H5Ovisit_by_nameHigh
H5Oset_comment *None
H5Oset_comment_by_name *None
H5Oget_commentNone
H5Oget_comment_by_nameNone
H5Oget_infoHigh
H5Oget_info_by_nameHigh
H5Oget_info_by_idxNone
H5Oincr_refcountNone
H5Odecr_refcountNone
H5OflushNone
H5OrefreshNone
H5Oare_mdc_flushes_disabledNone
H5Odisable_mdc_flushesNone
H5Oenable_mdc_flushesNone

Datatype APIs (H5T*)

  • All datatype APIs are Highy supported (Full).