Funny how, even having left particle physics a decade ago, I keep returning to CERN ROOT [0] when a dataset hits a certain size.
Of course solving the general problem of all ROOT I/O (which can involve custom serialization or schema migration code in C++) won't (and doesn't need to, for most people) work.