我正在考虑在内存应用程序数据存储中使用 BDB XML。它是具有定义记录和数据记录的类似 XML 的数据,我提供了 XPath,例如查询数据访问。它运行良好,除了内存溢出问题,这在某些情况下无法避免(所以,只是为了避免内存溢出),并且仍然需要数据进行进一步处理(所以,它不能得到输出流呢)。所以,我打算使用分隔或 XMl 文件将数据缓存到磁盘,也正在尝试 BOOST 序列化。那就是当我想到使用一些嵌入式数据库时,它可以给我磁盘缓存(需要时),在磁盘缓存上加密(在某些情况下,我仍然对磁盘进行一些加密的 XML 缓存,但它们与内存溢出无关)。现在,我需要:
- 没有性能下降和可靠性
- 在需要时(或当数据集达到限制时)对内存数据进行加密的磁盘缓存
- 按需加密磁盘缓存
- 数据访问的 XPath 兼容性(访问不需要知道数据是否在磁盘的内存中)
- 不想创建磁盘上的数据库容器(在 BDB XML 的情况下),因为在执行完成后不需要它,删除通常会并且可能会产生一些损失。
- 解决方案需要独立于平台
那么,我应该使用 BDB XML 吗?它是最突出的解决方案并提供 C++ API(我的应用程序是独立于平台的 C++),它提供了 XPath 2.0 用于访问(它需要),但我想在其中一个节点一个节点地构建和 XML,并且主要是一个节点地访问节点并且想要在没有明确的磁盘容器的情况下使用它,该容器需要在执行期间经常清除并随后删除,但需要它不使用比指定缓冲区更多的内存并在需要时使用磁盘。