우리는 다음 프로젝트에 대해 Terracotta을 고려하고 있습니다. 별도의 DBMS 없이도 데이터 지속성을 제공 할 수있는 잠재력에 흥미가 있습니다. (On using Terracotta as a persistence solution 참조)테라코타의 영구 데이터의 경우 클래스를 어떻게 발전시킬 수 있습니까?
소프트웨어 진화의 주요 문제점 중 하나는 기존 생산 데이터를 새로운 데이터 모델과 일치시키는 것입니다. RDBMS의 경우 배포 시점에 SQL 변경 스크립트를 사용할 가능성이 높습니다. Terracotta가 뒷받침하는 데이터의 경우, 사소한 진화를 처리하는 방법이 내게 즉시 명백하지 않습니다.
여기에 couple of paragraphs on Class Evolution in the Terracotta documentation이 있지만 DSO에만 해당되며 표면적으로 머물러 있습니다.
- 테라코타에 저장된 영구 데이터에 대한 데이터 모델 진화를 처리하는 방법은 무엇입니까? 저는 DSO가 아닌 시나리오 (테라코타 툴킷 API)에 특히 관심이 있습니다.
- Terracotta DSO와 Toolkit API는 진화 된 클래스 정의에 대한 반응이 다릅니다.
- 클래스 전개의 한계를 이해하려면 테라코타가 오브젝트 데이터를 표현/전달하는 방법을 이해하는 데 도움이됩니다. 거기에 대한 사양이 무엇입니까?
- 테라코타에 적용 할 수있는 OODBMS 세계의 스키마 변화 기술이있을 수 있습니까?
사소한 예로, 내가 저장 Car
개체의 무리가 있고 내가 int
에 String
에서 Car
클래스의 modelYear
필드를 변경했습니다 가정 해 봅시다. 문서에 따르면 이것은 out-of-the-box에서 작동하지 않습니다. 응용 프로그램을 시작하는 동안 별도의 클래스 로더가 내 이전 Car
을로드 한 다음 다시 Car
으로 변환하는 솔루션을 상상할 수 있습니다. 그게 좋은 접근 방법일까요, 왜 아닌가요?