Следует ли использовать Berkeley DB XML без контейнера на диске?
Я рассматриваю возможность использования BDB XML, как в хранилище данных приложения памяти. Это XML-подобные данные с записями определений и записями данных, я предоставил XPath как запрос доступа к данным. Он работает хорошо, за исключением проблемы переполнения памяти, которая возникает в некоторых случаях, которых нельзя избежать (поэтому просто ant, чтобы избежать переполнения памяти), и данные по-прежнему необходимы для дальнейшей обработки (поэтому их невозможно получить выводить поток пока). Итак, я собирался кэшировать данные на диск с помощью файлов с разделителями или XMl, также пытался сериализовать BOOST. И вот, когда я подумал об использовании некоторой встроенной базы данных, которая может дать мне кеширование на диске (при необходимости), зашифрованное на кешировании диска (в некоторых случаях я по-прежнему выполняю некоторое зашифрованное XML-кэширование на диск, но они не связаны с переполнением памяти).). Теперь мне нужно:
- Отсутствие снижения производительности и надежности
- зашифрованное на диске кэширование данных в памяти при необходимости (или когда набор данных достигает предела)
- по запросу шифруется на диске кеширование
- Совместимость с XPath для доступа к данным (доступ не должен знать, находятся ли данные в памяти на диске)
- Не нужно создавать контейнер БД на диске (в случае XML BDB), так как он не нужен после завершения выполнения, удаление будет часто, если и может иметь некоторые потери.
- Решение должно быть независимым от платформы
Итак, я должен использовать BDB XML? это наиболее известное решение и предоставляет C++ API (мое приложение находится в C++, независимом от платформы), оно предоставило XPath 2.0 для доступа (это необходимо), но я хочу построить и XML в нем узел за узлом и в основном обращаться к узлу за узлом и хочу использовать его без явного контейнера на диске, который необходимо часто очищать во время exec и впоследствии удалять, но нужно, чтобы он не использовал больше памяти, чем указанный буфер, и использовал диск при необходимости.
1 ответ
Нет. Проверьте колонку Джоэла "Назад к основам".
По сути, BDB-XML - это хороший способ создавать и потреблять XML, а XML, в свою очередь, является хорошим способом обмена данными. Но XML не предназначен для использования в памяти, и поэтому BDB-XML даже не должен входить в рассмотрение.