2010-06-09 8 views
9

¿Cómo puedo saber si puedo actualizar de forma segura Boost Serialization Library en un sistema de producción sin romper la compatibilidad con los datos existentes? ¿Hay alguna prueba que deba realizar para estar seguro de que todos los datos almacenados en el formato binario de la versión anterior de la biblioteca serán leídos con éxito por el nuevo? ¿La biblioteca de serialización Boost en sí misma garantiza algún tipo de compatibilidad entre versiones?Actualización de Boost Serialization Library

Respuesta

9

Boost.serialization es compatible con versiones anteriores, pero is not guaranteed to be forwards compatible.

Esto significa:

  • puede crear un archivo con una versión anterior de boost.serialization que puede ser leído por una nueva versión.
  • No hay garantía de que un archivo creado con una versión más reciente de boost.serialization sea legible por uno anterior.

Si envía mensajes entre un cliente y un servidor en ambas direcciones, por ejemplo, puede que tenga que actualizar la versión de boost en ambos pasos.

El 'formato de cable' no cambia con cada versión de impulso. Así que entre 2 versiones específicas de boost, es posible que no tenga ningún problema. No puedo encontrar documentación específica sobre qué versión del formato de archivo se usa dentro de qué versión de boost.

Tenga en cuenta también que, si bien la compatibilidad con versiones anteriores está "garantizada", eso solo expresa un intento, aunque supongo que podría recuperar su dinero ;-). Las versiones 1.42 y 1.43 de Boost tenían un error que significaba que las versiones posteriores no podían leerlas de nuevo: see the 1.45 release notes.

1

Puede crear archivos de prueba utilizando su versión actual del software y almacenarlos. Luego incluya la carga de estos archivos en sus pruebas automáticas.

Lamentablemente, incluso si su código pasa esta prueba, no puede estar 100% seguro en cuanto a compatibilidad, porque todavía puede haber algún tipo de contenido serializado que no se puede cargar. Bueno, es mejor que nada.

Esta prueba cubrirá automáticamente solo la compatibilidad con versiones anteriores. Probar la compatibilidad hacia adelante (hacia arriba) será más complicado. Uno necesitará para crear datos de prueba para cada nueva versión y tratar de cargarlo por cada versión antigua ...

compatibilidad hacia adelante extendido por impulso :: serialización es answered here

Cuestiones relacionadas