Reputation: 10784
I am considering various ways of storing deltas on objects for long periods of time (30 years would be the common case). One option is to have a single delta table storing changes for every object. Because the deltas need to be stored for such a long time, the delta table will grow very large, so I was considering options to at least pair it down a bit by not storing every delta as a string.
The delta table would primarily be storing primitives from .NET (int
, long
, decimal
, string
, etc). The delta table would look something like
| RowIdentifier | FieldIdentifier | NewValue | Timestamp |
Is protocol buffers (protobuf-net or some other protobuf implementation) suitable for such long term storage?
Upvotes: 4
Views: 663
Reputation: 1062905
I can't see any reason it wouldn't be. If absolutely necessary (you know, if none of the existing languages still work) the spec is documented and pretty simple.
Being appendable makes it quite useful for delta too.
So: will it work? Yes
If, however, the question is "should I?" - if need a lot more info. Possibly yes, possibly no.
Upvotes: 3
Reputation: 8837
The answer is No.
Think about what you're asking and the solution you're trying to apply.
Does 30 years worth of data need to be stored in a way thats capable of high speed reads? Likely no.
I think XML would have been my first choice, as it's 'plaintext', it's the epitome of 'self describing', and could be read by 1000 different programming languages in the future. GZIP will also have a field day with XML if storage is a concern.
Upvotes: 4