DB4O를 사용하여 복잡한 객체 구조에서 약점을 사용할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1913155

  •  19-09-2019
  •  | 
  •  

문제

응용 프로그램을 DB4O로 포트하는 것을 고려하고 있습니다. 데이터 모델은 서로 사이에 많은 참조가있는 많은 작은 객체로 구성됩니다. 예를 들어, 저자와 챕터를 가리키는 책이 있습니다. 챕터에는 섹션이 있고 섹션에는 큰 텍스트, 이미지가 있으며 언급 된 문자를 참조하십시오.

메타 구조를 메모리에 유지하는 것이 가능하다고 생각하지만 (텍스트 블로브를 제외한 모든) 약점과 관련된 영리한 트릭을 사용할 수 있는지 궁금해하므로 DB4O는 모델의 일부를 메모리에 유지할 수 있습니다. 즉, 최근에 사용했던 것).

텍스트 blobs (약 1-10kb 여야 함)에 대해서도 마찬가지입니다. DB 레이어에 대해 걱정하지 않고 문자열을 얻을 수 있고 Getter 내부의 인공 ID를 사용하여 텍스트 블로브를 쿼리 할 필요없이 항상 전체 텍스트를 메모리에 유지하는 하드 참조를 사용하지 않고 항상 문자열을 얻을 수 있습니까?

도움이 되었습니까?

해결책

약점을 끄는 것은 주로 성능에 사용됩니다 동조. 이 접근법의 단점은 무시할 수 없습니다. 따라서주의하십시오. 나는 그것을 추천하지 않을 것이다.

메모리 사용 제어를 사용해야합니다 활성화 특징. 활성화는 모델의 일부만 메모리에 유지하는 데 도움이되며 약한 퇴사는 GC 객체가 더 이상 사용되지 않는 데 도움이됩니다. 나는 그것이 갈 길이라고 생각합니다.

또한 DB4O 포럼에 질문을 게시하여 DB4O 커뮤니티의 도움을받을 수 있습니다.

고란

다른 팁

나는 최근 DB40 또는 ORM/OODB 제품을 사용하지 않았지만, 이러한 종류의 메모리 관리 및 그래프 관리 기능은 당신이 그 위에 구축하는 것이 아니라 프레임 워크 자체의 일부가되어야한다는 것이 저를 공격 할 것입니다. Versant의 DB40이 제공하지 않으면 제공하는 다른 제품을 살펴 보는 것이 좋습니다. 그래서 나는 당신이 찾고있는 대답을 깨닫지 못하지만 프레임 워크를 활용하는 것은 나의 첫 번째 콜 포트 일 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top