J'envisage d'utiliser BDB XML, comme dans le magasin de données d'application de mémoire. C'est XML comme des données avec des enregistrements de définition et des enregistrements de données, j'ai fourni XPath comme demandant l'accès aux données. Son fonctionnement est bon, à l'exception d'un problème de débordement de mémoire, qui survient dans certains cas, ce qui ne peut être évité (donc, juste pour éviter le débordement de mémoire), et des données sont encore nécessaires pour un traitement ultérieur. pour sortir le flux encore). Donc, j'allais mettre en cache des données sur le disque en utilisant des fichiers délimités ou XMl, essayait aussi la sérialisation BOOST. Et c'est quand j'ai pensé à utiliser un db embarqué qui peut me donner une mise en cache sur disque (si nécessaire), crypté sur la mise en cache du disque (je fais toujours du cache XML crypté sur le disque dans certains cas).). Maintenant, je dois:Devrait utiliser Berkeley DB XML sans un conteneur sur le disque?
- Aucune dégradation des performances et une fiabilité
- cryptée mise en cache sur disque des données en mémoire en cas de besoin (ou lorsque jeu de données atteint une limite)
- sur demande la mise en cache cryptée sur le disque
- compatibilité XPath pour l'accès aux données (accès ne devrait pas besoin de savoir si les données en mémoire de sur-disque)
- Vous ne voulez pas créer sur le disque contenant db (en cas de BDB XML) comme non nécessaire Une fois l'exécution terminée, les suppressions auront souvent un certain impact.
- solution doit être plate-forme indépendante
donc, dois-je utiliser XML BDB? il est la solution la plus importante et fournit l'API C++ (mon application est en C++ indépendante de la plate-forme), XPath 2.0 pour l'accès (nécessaire), mais je veux construire et XML dedans nœud par nœud et surtout accéder nœud par nœud et vouloir pour l'utiliser sans un conteneur sur disque explicite qui doit être effacé souvent pendant exec et supprimé par la suite, mais il a besoin de ne pas utiliser plus de mémoire que le tampon spécifié et utiliser le disque si nécessaire.