2010-07-01 6 views
0

메모리 응용 프로그램 데이터 저장소에서와 마찬가지로 BDB XML을 사용하려고합니다. 정의 레코드와 데이터 레코드가있는 XML과 같은 데이터이며, 데이터 액세스를 위해 quiring과 같은 XPath를 제공합니다. 메모리 오버 플로우 문제를 제외하고는 메모리 오버 플로우 문제를 피할 수없는 경우도 있습니다 (mem-overflow를 방지하기 위해 개미가 필요함). 이후 처리를 위해 데이터가 여전히 필요합니다. 아직 스트림을 출력하지 않음). 그래서, 나는 delimited 또는 XMl 파일을 사용하여 디스크에 데이터를 캐시 할 것이고, 또한 BOOST 직렬화를 시도하고있었습니다. 그리고 내가 디스크 캐싱 (필요할 때)에서 디스크 캐싱을 제공 할 수있는 임베디드 DB를 사용할 생각이 들었을 때 (디스크 캐싱으로 암호화 된 경우도 있습니다. 그러나 특정 경우 디스크에 캐싱하는 일부 암호화 된 XML을 수행하지만 메모리 오버 플로우와 관련이 없습니다.). 지금, 나는 필요가 없습니다 :디스크 컨테이너없이 Berkeley DB XML을 사용해야합니까?

  • 성능 저하 및 안정성을 필요로 할 때
  • 는 메모리 내 데이터에 디스크 캐시를 암호화 (또는 데이터 세트가 한계에 도달 할 때) 수요에
  • 온 디스크 캐싱
  • 암호화
  • 데이터 액세스를위한 XPath 호환성 (데이터가 디스크의 메모리에 있는지 여부는 액세스가 알 필요가 없습니다.)
  • BDB XML의 경우에는 필요하지 않으므로 디스크상의 db 컨테이너를 만들고 싶지 않습니다. 실행이 완료된 후 삭제는 종종 유료화 될 수 있습니다.
  • 솔루션

그래서, 내가 BDB XML을 사용해야 플랫폼을 독립적으로 할 필요가? 가장 눈에 띄는 솔루션이며 C++ API를 제공합니다 (내 응용 프로그램은 플랫폼 독립적 인 C++입니다.) 액세스를 위해 XPath 2.0을 제공했지만 (필요한 경우) 노드에 노드를 만들고 노드에 주로 노드에 액세스하여 원하는 XML을 만들고 싶습니다. exec 중에 자주 삭제해야하고 이후에 삭제해야하는 명시적인 디스크상의 컨테이너없이 사용하는 것이지만, 필요할 때 지정된 버퍼보다 ​​많은 메모리를 사용하지 않고 디스크를 사용해야 할 필요가 있습니다.

답변

0

No. 확인 조엘의 "back to Basics" 열.

기본적으로 BDB-XML은 XML을 생성하고 소비하는 좋은 방법이며 XML은 데이터를 교환하는 좋은 방법입니다. 그러나 XML은 메모리 내 사용을위한 것이 아니므로 BDB-XML은 고려 사항에 들어 가지 않아야합니다.

관련 문제