На википедии можно прочитать следующую критику о hdf5:HDF5 возможное повреждение или потеря данных?
Критика hdf5 вытекает из его монолитной конструкции и длительный спецификации. Несмотря на 150-страничный открытый стандарт, существует только одна реализация 0xC HDF5, что означает, что все привязки делятся своими ошибками и проблемами производительности. Составленный с отсутствием журнальной, документально ошибок втекущего стабильного выпуска являются способны разлагающих целых hdf5 баз данных. Хотя 1.10-alpha добавляет журналирование, это назад - несовместимо с предыдущими версиями. HDF5 также не поддерживает UTF-8, что требует ASCII в большинстве мест. Кроме того, даже в последнем черновике данные массива никогда не могут быть удалены.
Мне интересно, применимо ли это только к реализации С HDF5 или если это общий недостаток HDF5?
Я занимаюсь научными экспериментами, которые иногда генерируют гигабайты данных и во всех случаях не менее нескольких сотен мегабайт данных. Очевидно, что потеря данных и, в особенности, коррупция будет огромным недостатком для меня.
Мои скрипты всегда имеют Python API, поэтому я использую h5py
(версия 2.5.0).
Итак, эта критика имеет отношение ко мне, и я должен беспокоиться о поврежденных данных?
Во-первых, все другие реализации полагаются на библиотеку C, так что это проблемы во всем мире. Для потери данных я считаю, что критическая точка - это добавление данных в уже существующий файл. Но если вы пишете только один файл за раз, то, очевидно, вы можете проверить, успешна ли запись, прежде чем удалять данные, и это не должно быть проблемой. Но я не эксперт и также хотел бы видеть другие мнения. – kakk11
Критика исходит из обсуждения [hackernews] (https://news.ycombinator.com/item?id=10858189) [skynetv2] (https://news.ycombinator.com/item?id=10860496) баллов что «авария может привести к коррупции, но нет высокого риска коррупции» _ – schoetbi