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