【问题标题】:is protocol buffers suitable for long term serialization?协议缓冲区是否适合长期序列化?
【发布时间】:2012-03-19 03:14:22
【问题描述】:

我正在考虑在对象上长期存储增量的各种方法(通常情况下是 30 年)。一种选择是使用单个增量表来存储每个对象的更改。因为增量需要存储这么长时间,增量表会变得非常大,所以我正在考虑通过不将每个增量都存储为字符串来至少将其配对。

增量表将主要存储来自 .NET 的原语(int、long、decimal、string 等)。增量表看起来像

| RowIdentifier | FieldIdentifier | NewValue | Timestamp |

协议缓冲区(protobuf-net 或其他一些 protobuf 实现)是否适合这种长期存储?

【问题讨论】:

  • 以当今技术进步的速度,准备一个可以使用 30 年的系统听起来相当乐观 :)
  • 乐观,是的。但从法律上讲,即使同时将数据迁移到新系统,企业也需要有可用的数据。

标签: .net serialization protocol-buffers protobuf-net


【解决方案1】:

我看不出有任何理由。如果绝对有必要(你知道,如果现有语言都不起作用),规范会记录在案并且非常简单。

可附加性使其对 delta 也非常有用。

那么:它会起作用吗?是的

但是,如果问题是“我应该吗?” - 如果需要更多信息。可能是,可能不是。

【讨论】:

    【解决方案2】:

    答案是否定的。

    想想你的问题和你试图应用的解决方案。

    • 协议缓冲区:速度
    • 您的需求:长期兼容性

    是否需要以能够高速读取的方式存储价值 30 年的数据?可能没有。

    我认为 XML 会是我的首选,因为它是“纯文本”,是“自我描述”的缩影,将来可以被 1000 种不同的编程语言读取。如果存储是一个问题,GZIP 也将有一个 XML 的现场日。

    【讨论】:

    • 另外,“增量表会变得非常大”。我可能是一个未来主义者,但我有一个疯狂的想法,未来可用磁盘容量也可能会增加。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2013-09-16
    • 2016-11-10
    相关资源
    最近更新 更多