More recoverable .root files

I am completely unlearned in this matter, but I am wondering if there could be some effort spent on making .root files more “recoverable” in the case of partial copies/downloads or of corrupted parts of files.

I know some progress was made in e.g. video codecs so that a cut-off download would still let you play the part of the video that was on disk, compared to previous formats. I imagine this is done by storing some of the essential format information at the head of the file instead of on-the-fly or at the end, and possibly in a redundant way.

Could something similar be done for a .root file? A partial download would still result in a usable file, despite some of the data being missing (e.g. some TKeys missing, or only some entries from a TTree).



thanks for this idea.
I think ROOT files are very recoverable.
As long as the header of the file is intact, the file can be truncated and the available information would be still readable, e.g. in presence of big trees.
The format is so flexible that it is actually possible to write a file with a process and read it “live” with another one stumbling only in incomplete keys but w/o any crash or corruption.
If you have in mind a particular deficiency of the current set of features or a particular case important for your workflow, feel yourself invited to submit a PR to our GitHub repository!