I'm not an expert at all (yet) so please be kind...

I recently started writing a converter from our proprietary measurements format 
to HDF5 in C# and using the HDF.PInvoke nuget distribution. I've read that the 
HDF.PInvoke is the way forward and hopefully it discloses all the features you 
need.

Maybe too trivial to mention but it is important to implement IDispose properly 
on classes that have pointers to HDF entities to ensure that they are properly 
released on software failure and release of managed objects. But this won't 
save the file if your system halts in such a way that the disposers and 
finalizers and garbage collection won't be executed anymore.

Kind regards,
Gerco



Gerco de Jager  | Software Engineer | MARIN Software Group
MARIN | T +31 317 49 33 51 | mailto:g.d.ja...@marin.nl | http://www.marin.nl

MARIN news: 
http://www.marin.nl/web/News/News-items/Predicting-broadband-hull-pressure-fluctuations-and-underwater-radiated-noise.htm

-----Original Message-----
From: Hdf-forum [mailto:hdf-forum-boun...@lists.hdfgroup.org] On Behalf Of Ewan 
Makepeace
Sent: vrijdag 22 september 2017 3:34
To: hdf-forum@lists.hdfgroup.org
Subject: [Hdf-forum] Avoiding corruption of the HDF5 File

Dear Experts,

We are building a data acquisition and processing system on top of an HDF5 file 
store. Generally we have been very pleased with HDF5 - great flexibility in 
data structure, performant, small file size, availability of third party data 
access tools etc.

However our system needs to run for 36-48 hours at a time - and we are finding 
that if we (deliberately or accidentally) stop the process while running (and 
writing data) the file is corrupted and we lose all our work.

We are in C# and wrote our access routines on top of HDF5.net (which I 
understand is deprecated). We tend to keep all active pointer objects open for 
the duration of the process that reads or writes them (file, group and dataset 
handles in particular).

1) Is there a full featured replacement for HDF5.net now, that I was unaware 
of? Previous contenders were found to be missing support for features we depend 
on. If so will it address the corruption issue?

2) Should we be opening and closing all the entities on every write? I would 
have thought that would dramatically slow access but perhaps not. Guidance?

3) Are there any other tips to making the file less susceptible to corruption 
if writing is abandoned unexpectedly?

Please help - this issue could be serious enough to make us reconsider our 
storage choice, which would be expensive now.

rgds,
Ewan
_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5
_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to