Ускорение обновления библиотеки сериализации - PullRequest
10 голосов
/ 09 июня 2010

Как узнать, что я могу безопасно обновить Boost Serialization Library в производственной системе, не нарушая совместимость с существующими данными?Должен ли я выполнить какой-либо тест, чтобы убедиться, что все данные, сохраненные в двоичном формате предыдущей версией библиотеки, будут успешно прочитаны новой?Сама библиотека Boost Serialization гарантирует некоторую совместимость между версиями?

Ответы [ 3 ]

9 голосов
/ 25 ноября 2011

Boost.serialization обратно совместимо, но равно не гарантированно совместимо с .

Это означает:

  • вы можете создать архив с более старой версией boost.serialization, который можно прочитать с более новой версией.
  • Нет гарантии, что архив, созданный с более новой версией boost.serialization, будет доступен для чтения более старой.

Если вы отправляете сообщения между клиентом и сервером, например, в обоих направлениях, вам может потребоваться обновить версию boost на обоих в режиме lockstep.

«Проводной формат» не меняется с каждой версией буста. Таким образом, между двумя конкретными версиями boost у вас могут не возникнуть проблемы - я не могу найти конкретную документацию о том, какая версия архива используется в какой версии boost.

Обратите внимание, что хотя обратная совместимость «гарантирована», это всего лишь выражение намерения - хотя, думаю, вы могли бы вернуть свои деньги ;-). В буст-версиях 1.42 и 1.43 была ошибка, из-за которой более поздние версии не могли их прочитать - см. Примечания к выпуску 1.45 .

1 голос
/ 27 ноября 2017

Вы можете создавать тестовые файлы, используя текущую версию программного обеспечения, и сохранять их. Затем включите загрузку этих файлов в ваши автоматические тесты.

К сожалению, даже если ваш код пройдет этот тест, вы не можете быть на 100% уверены в совместимости, потому что все еще может быть какой-то сериализованный контент, который не может быть загружен. Ну, это все же лучше, чем ничего.

Этот тест автоматически охватывает только обратную совместимость. Тестирование прямой (восходящей) совместимости будет более сложным. Нужно будет создать тестовые данные для каждого нового выпуска и попытаться загрузить их для каждой старой версии ...

Расширенная прямая совместимость для boost :: serialization - здесь ответ

1 голос
/ 23 июля 2010

Первоначальный выпуск был в Boost 1.32.Похоже, что вы можете просмотреть историю выпусков с тех пор здесь: http://www.boost.org/doc/libs/1_43_0/libs/serialization/doc/release.html

Кроме этого, я бы посоветовал спросить в списке рассылки Boost: http://www.boost.org/community/groups.html#users

...