Boost Serialization Library을 기존 데이터와의 호환성을 손상시키지 않고 프로덕션 시스템에서 안전하게 업그레이드 할 수 있다는 것을 어떻게 알 수 있습니까? 라이브러리의 이전 버전에서 바이너리 형식으로 저장된 모든 데이터가 새 라이브러리에 의해 성공적으로 읽히도록하기 위해 수행해야하는 테스트가 있습니까? 부스트 직렬화 라이브러리 자체가 버전간에 호환성을 보장합니까?부스트 직렬 라이브러리 업그레이드
답변
최초 릴리스는 부스트 1.32입니다. 그것은 당신이 여기에 이후 릴리스 기록을 볼 수 있습니다 나타납니다 내가 부스트 메일 링리스트에 요청하는 게 좋을 것보다 http://www.boost.org/doc/libs/1_43_0/libs/serialization/doc/release.html
Boost.serialization은 이전 버전과 호환하지만 is not guaranteed to be forwards compatible입니다.
이 의미
- 당신이 새 버전으로 읽을 수 boost.serialization의 이전 버전과 아카이브를 만들 수 있습니다.
- 새 버전의 boost.serialization으로 만든 아카이브가 이전 버전에서 읽을 수 있다는 보장은 없습니다.
클라이언트와 서버간에 양방향으로 메시지를 보내는 경우 (예 : 두 단계 모두에서 잠금 단계에서 업그레이드 버전을 업그레이드해야 할 수 있음)
마다 '와이어 형식'이 변경되지 않고 각 번의 부스트 버전으로 변경됩니다. 따라서 두 가지 특정 버전의 부스트 사이에는 문제가 없을 수 있습니다. 어떤 버전의 부스트 버전에서 어떤 아카이브 형식의 버전이 사용되는지에 대한 구체적인 문서를 찾을 수 없습니다.
하위 호환성은 '보증'되지만 의도를 표현한 것일뿐입니다.하지만 돈을 돌려받을 수는 있겠지만 .-). Boost 버전 1.42 및 1.43에는 이후 버전에서 다시 읽을 수없는 버그가 있습니다. see the 1.45 release notes.
현재 소프트웨어 버전을 사용하여 테스트 파일을 만들어 저장할 수 있습니다. 그런 다음이 파일을 자동 테스트에로드하십시오.
유감스럽게도 코드가이 테스트를 통과하더라도로드 할 수없는 일종의 직렬화 된 콘텐츠가있을 수 있으므로 호환성에서 100 % 확신 할 수는 없습니다. 글쎄, 그것은 여전히 아무것도 아닌 것보다 낫다.
이 테스트는 자동으로 이전 버전과의 호환성만을 제공합니다. 순방향 (상향) 호환성 테스트는 더욱 복잡해집니다. 하나는 ... 부스트
확장 앞으로의 호환성을 모든 새로운 릴리스에 대한 테스트 데이터를 생성하고 모든 이전 버전을로드하려고해야합니다 : 직렬화 answered here
입니다- 1. 업그레이드 부스트 버전
- 2. 건물 부스트 라이브러리
- 3. 커스텀 부스트 라이브러리 작성하기
- 4. RTTI 용 부스트 라이브러리
- 5. Monodevelop에서 부스트 라이브러리
- 6. 특정 부스트 라이브러리 컴파일
- 7. 부스트 라이브러리 경로
- 8. 부스트 C++ 라이브러리 설치
- 9. 스레드 풀을 사용하여 부스트 라이브러리
- 10. 부스트 : 컴파일되었지만, 누락 된 라이브러리
- 11. Snow Leopard에 부스트 라이브러리 설치
- 12. java.util.concurrent 대 부스트 스레드 라이브러리
- 13. 부스트 설치 및 라이브러리 경로
- 14. 코코아 프로젝트에서 부스트 라이브러리 사용
- 15. 부스트 - "정적"대 "공유"라이브러리
- 16. 엔터프라이즈 라이브러리 업그레이드 - v1.0에서 v4.1
- 17. C : 크로스 플랫폼 RS-232 직렬 라이브러리?
- 18. 파이썬 예외 구문 오류 텍스트 (부스트 라이브러리)
- 19. Rad Studio 용 부스트 라이브러리 업데이트
- 20. 부스트 그래프 라이브러리 메모리 소비 큰 그래프
- 21. 부스트 그래프 라이브러리 동적 에지 가중치
- 22. 부스트 C++ 라이브러리 객체 직렬화 문제
- 23. 부스트 범위 라이브러리 : 두 범위를 순차적으로 통과
- 24. VC++ 2010 프로젝트에서 부스트 직렬화 라이브러리 사용
- 25. 부스트 그래프 라이브러리 : named_graph and remove_vertex
- 26. 그래프 라이브러리 부스트 : 가장자리 가중치 설정
- 27. 이 프로그래밍 기술은 무엇입니까? (부스트 라이브러리)
- 28. C++ 용 부스트 대체 0x 라이브러리 기능
- 29. 그래프 라이브러리 부스트 : 잠재적 인 버그
- 30. 미리 컴파일 된 부스트 라이브러리 (Ubuntu) 패키지