Подходят ли буферы протокола для долгосрочной сериализации? - PullRequest
4 голосов
/ 29 февраля 2012

Я рассматриваю различные способы хранения дельт на объектах в течение длительных периодов времени (обычно 30 лет). Один из вариантов - иметь одну дельта-таблицу, в которой хранятся изменения для каждого объекта. Поскольку дельты должны храниться в течение столь длительного времени, таблица дельты будет очень большой, поэтому я рассматривал варианты, по крайней мере, спарить ее, не сохраняя каждую дельту в виде строки.

Дельта-таблица будет в основном хранить примитивы из .NET (int, long, decimal, string и т. Д.). Дельта-таблица будет выглядеть примерно так:

| RowIdentifier | FieldIdentifier | NewValue | Timestamp |

Подходят ли буферы протокола (protobuf-net или другая реализация protobuf) для такого длительного хранения?

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012

Я не вижу причин, по которым это не будет.Если это абсолютно необходимо (вы знаете, если ни один из существующих языков все еще не работает), спецификация задокументирована и довольно проста.

Возможность добавления делает его весьма полезным для дельты.

Итак:Работа?Да

Если, однако, вопрос "я должен?"- если нужно гораздо больше информации.Возможно да, возможно нет.

3 голосов
/ 29 февраля 2012

Ответ №

Подумайте о том, что вы спрашиваете, и о решении, которое вы пытаетесь применить.

  • Протоколные буферы: Скорость
  • Ваша потребность: долгосрочная совместимость

Нужно ли хранить данные за 30 лет таким образом, чтобы можно было читать с высокой скоростью? Скорее всего нет.

Я думаю, что XML был бы моим первым выбором, так как это «открытый текст», это воплощение «самоописания», и он мог бы быть прочитан 1000 различными языками программирования в будущем. У GZIP также будет день поля с XML, если проблема заключается в хранении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...