Следует ли использовать Berkeley DB XML без контейнера на диске? - PullRequest
0 голосов
/ 01 июля 2010

Я рассматриваю возможность использования BDB XML, как в хранилище данных приложения памяти.Это XML-подобные данные с записями определений и записями данных, я предоставил XPath как запрос для доступа к данным.Он работает хорошо, за исключением проблемы переполнения памяти, которая возникает в некоторых случаях, которых нельзя избежать (поэтому просто ant, чтобы избежать переполнения памяти), и данные по-прежнему необходимы для дальнейшей обработки (поэтому их невозможно получитьвыводить поток пока).Итак, я собирался кэшировать данные на диск, используя файлы с разделителями или XMl, также пытался сериализовать BOOST.И вот когда я подумал об использовании некоторой встроенной базы данных, которая может дать мне кеширование на диске (при необходимости), зашифрованное на кешировании диска (в некоторых случаях я по-прежнему выполняю зашифрованное XML-кеширование на диск, но они не связаны с переполнением памяти)).Теперь мне нужно:

  • Нет снижения производительности и надежности
  • зашифрованное на диске кэширование данных в памяти при необходимости (или когда набор данных достигает предела)
  • зашифрованное по требованию кэширование на диске
  • совместимость с XPath для доступа к данным (доступ не должен знать, находятся ли данные в памяти на диске)
  • Не хочу создавать наКонтейнер -disk db (в случае XML BDB), так как он не нужен после завершения выполнения, часто будет удален, если и может иметь некоторые потери.
  • Решение должно быть независимым от платформы

так, я должен использовать BDB XML?это наиболее известное решение и предоставляет C ++ API (мое приложение находится в C ++, независимом от платформы), оно предоставило XPath 2.0 для доступа (это необходимо), но я хочу построить и XML в нем узел за узлом и в основном обращаться к узлу за узлом и хочуиспользовать его без явного контейнера на диске, который необходимо часто очищать во время exec и впоследствии удалять, но нужно, чтобы он не использовал больше памяти, чем указанный буфер, и использовал диск при необходимости.

1 Ответ

0 голосов
/ 01 июля 2010

Нет. Проверьте столбец Джоэла "назад к основам" .

По сути, BDB-XML - это хороший способ создавать и потреблять XML, а XML, в свою очередь, является хорошим способом обмена данными. Но XML не предназначен для использования в памяти, и поэтому BDB-XML даже не должен входить в рассмотрение.

...