Are these protocol buffers suitable for long-term serialization?

I am considering various ways of storing deltas on objects for long periods of time (30 years would be a common case). One option is for one delta table to save changes for each object. Since the delta needs to be stored for such a long time, the delta table will grow very large, so I considered options for at least a couple of them, without saving each delta as a row.

The delta table will primarily store the primitives from .NET ( int , long , decimal , string , etc.). The delta table will look something like this:

 | RowIdentifier | FieldIdentifier | NewValue | Timestamp | 

Are protocol buffers (protobuf-net or some other protobuffs) suitable for such long-term storage?

+4
source share
2 answers

I see no reason why this should not be. If it is absolutely necessary (you know, if none of the existing languages ​​works), the specification is documented and quite simple.

Being padded, it is also very useful for delta too.

So: will this work? Yes

If, however, the question: "should I?" - if necessary, much more information. Maybe yes, maybe no.

+3
source

Answer: No.

Think about what you are asking and the solution you are trying to apply.

  • Protocol Buffers: Speed
  • Your need: Long-term compatibility

Should data be stored for 30 years so that it can be read at high speed? Probably not.

I think XML would be my first choice, as it is "plain text", this embodiment of "self-description" and can be read in 1000 in the future by 1000 different programming languages. GZIP will also have a field day with XML if there is a storage problem.

+3
source

Source: https://habr.com/ru/post/1399037/


All Articles